elasticsearch入門系列">elasticsearch入門系列
797
2022-05-30
2.3 etcd典型應用場景舉例
正如前文介紹的那樣,etcd的定位是通用的一致性key/value存儲,但也有服務發現和共享配置的功能。因此,典型的etcd應用場景包括但不限于分布式數據庫、服務注冊與發現、分布式鎖、分布式消息隊列、分布式系統選主等。etcd的定位是通用的一致性key/value存儲,同時也面向服務注冊與發現的應用場景。本節將對etcd的一些典型應用場景進行簡單概括。
2.3.1 服務注冊與發現
服務發現(Service Discovery)要解決的是分布式系統中最常見的問題之一,即在同一個分布式集群中的進程或服務如何才能找到對方并建立連接。
從本質上說,服務發現就是要了解集群中是否有進程在監聽UDP或者TCP端口,并且通過名字就可以進行查找和鏈接。
要解決服務發現的問題,需要具備如下三個條件。
1)一個強一致性、高可用的服務存儲目錄。而基于Raft算法的etcd天生就是這樣一個強一致性、高可用的服務存儲目錄。
2)一種注冊服務和健康服務健康狀況的機制。用戶可以在etcd中注冊服務,并且對注冊的服務配置key TTL,定時保持服務的心跳以達到監控健康狀態的效果。
3)一種查找和連接服務的機制。在etcd指定的主題下注冊的服務業能在對應的主題下查找到。為了確保連接,我們可以在各個服務機器上都部署一個代理模式的etcd,這樣就可以確保訪問etcd集群的服務都能夠互相連接。
如圖2-3所示的是一個服務發現與注冊的基本原理圖。
圖2-3 服務發現與注冊原理圖
1. etcd提供微服務注冊與發現
下面來看一個使用etcd進行服務注冊與發現的具體應用場景。
隨著Docker容器的流行,多種微服務共同協作,構成功能相對強大的架構的案例越來越多。動態且透明化地添加這些服務的需求也變得日益強烈。服務發現機制可用于在etcd中注冊某個服務名字的目錄,并在該目錄下存儲可用的服務節點的IP。在使用服務的過程中,只要從服務目錄下查找可用的服務節點進行使用即可,這樣通過etcd就做到了各微服務之間的自動添加與協同。
圖2-4 etcd提供微服務注冊與發現
2. etcd使得PaaS平臺應用多實例與實例故障重啟透明化
另一個典型的應用是利用etcd在PaaS平臺中應用多實例,以及實例故障重啟透明化。
PaaS平臺中的應用一般都有多個實例,通過域名,系統不僅可以透明地對多個實例進行訪問,還可以實現負載均衡。但是應用的某個實例隨時都有可能會發生故障重啟,這時就需要動態地配置域名解析路由中的信息。etcd的服務發現功能可以輕松解決這個動態配置的問題(如圖2-5所示)。
圖2-5 etcd使得PaaS平臺應用實例與實例故障重啟透明化
分布式 專屬分布式存儲服務
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。