您好,登錄后才能下訂單哦!
1. 命名服務
命名服務是分布式系統中較為常見的一類場景,分布式系統中,被命名的實體通常可以是集群中的機器、提供的服務地址或者遠程對象,通過命名服務,客戶端可以根據指定名字來獲取資源的實體、服務地址和提供者的信息。Zookeeper可以幫助應用系統通過資源引用的方式來實現對資源的定位和使用。Zookeeper 也可幫助應用系統通過資源引用的方 式來實現對資源的定位和使用,廣義上的命名服務的資源定位都不是真正意義上的實體資源, 在分布式環境中,上層應用僅僅需要一個全局唯一的名字。Zookeeper 可以實現一套分布式 全局唯一 ID的分配機制。
2. 配置管理
程序總需要配置,如果程序分散到各個機器上,要逐個改變配置就變得困難,現在這些配置全部放入zookeeper中,保存在zookeeper的某個目錄節點中,然后所有相關的應用程序對這個目錄節點進行監聽,一旦配置信息發生變化,每一個應用程序就會收到zookeeper的通知,然后從zookeeper獲取新的配置信息應用到系統中就好。例:以安裝hadoop集群為例,集群中的每一個節點的配置文件統一,在zk管理配置文件時,用監聽的手段,監聽配置文件內容是否被修改,配置文件是否添加配置文件是否刪除。以便于各個集群節點中同步配置文件。
3.集群管理
所謂的集群管理分兩大塊:是否有機器加入/退出,選舉master
(1)是否有節點機器加入或者退出
所有的機器約定在父目錄GroupMembers 下創建臨時目錄節點,然后監聽父目錄節點的子節點變化的信息。一旦有機器掛掉,該機器與zookeeper的連接斷開,其所創建的臨時節點目錄被刪除。所有其他機器都收到通知:某個兄弟目錄被刪除,于是,所有人都 知道:有兄弟掛了。新機器加入也是類似,所有機器收到通知:新兄弟目錄加入,又多了個新兄弟。
(2)選舉master
所有機器創建臨時順序編號目錄節點,每次選取編號最小 的機器作為 master 就好。
4. 分布式鎖
在zk中鎖有三種:寫鎖、讀鎖、時序鎖。
寫鎖:在zk上創建的一個臨時的無編號的節點。由于是無序編號,在創建時不會自動編號,導致只能客戶端有一個客戶端得到鎖,然后進行寫入。
讀鎖:在zk上創建一個臨時的有編號的節點,這樣即使下次有客戶端加入是同時創建相同的節點時,他也會自動編號,也可以獲得鎖對象,然后對其進行讀取。
時序鎖:在zk上創建的一個臨時的有編號的節點根據編號的大小控制鎖。
5.隊列管理
在zk中有兩種隊列管理方式:
(1)同步隊列:當一個隊列的成員都聚齊時,這個隊列才可用,否則一直等待所有成員到達。
作用:在約定目錄下創建臨時目錄節點,監聽節點數目是否是我們要求的數目。
(2)先進先出隊列:隊列按照 FIFO 方式進行入隊和出隊操作。
作用:和分布式鎖服務中的控制時序場景基本原理一致,入列有編號,出列按編號。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。