分布式協調技術
分布式協調技術,主要用來解決分布式環境中多個進程之間的同步控制,讓他們有序的去訪問某種臨界資源,防止造成『臟數據』的后果。
分布式
- 分布式:一個業務分拆多個子業務,部署在不同的服務器上。
- 集群:同一個業務,部署在多個服務器上。
zookeeper概述
zookeeper是一種為分布式應用所設計的高可用、高性能且一致的開源協調服務,它提供了一項基本服務:分布式鎖服務。
zookeeper性能上的特點,決定了它能夠用在大型的、分布式的系統之中。
從可靠性方面來講,它并不會因為一個節點的錯誤而崩潰。
zookeeper的架構
1. client 客戶端
客戶端,分布式應用程序集群中的一個節點,從服務器訪問信息。
對于特定的時間間隔,每個客戶端向服務器發送消息以使服務器知道客戶端是活著的。
當客戶端連接時,服務器發送確認。如果連接的服務器沒有響應,客戶端會自動將消息重定向到另一個服務器。
2. Server 服務器
服務器,zookeeper集合中的一個節點,為客戶端提供所有的服務。
向客戶端發送確認,通知服務器處于活動狀態。
3. Ensemble 服務器組
zookeeper服務器組。形成整體所需的最小節點數為3
4. Leader 服務器節點
服務器節點,如果任何連接的節點發生故障,則執行自動回復。
領導者在服務啟動時被選舉。
5. Follower
服務器節點跟隨引導指令。
分層命名空間
zookeeper節點成為znode
每個znode由一個名稱標識,并用路徑(/)序列分隔。