zookeeper功能
官方介紹: ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services.
這大概描述了Zookeeper主要可以干哪些事情:配置管理,名字服務(wù),提供分布式同步以及集群管理狭瞎。
配置管理
可靠性 集群
配置一致性 Zab一致性協(xié)議
使用 ZooKeeper 集中存儲(chǔ)和管理分布式系統(tǒng)的配置赖临。這意味著炎疆,所有新加入的節(jié)點(diǎn)都將在加入系統(tǒng)后就可以立即使用來(lái)自 ZooKeeper 的最新集中式配置晴竞。這還允許您通過(guò)其中一個(gè) ZooKeeper 客戶端更改集中式配置,集中地更改分布式系統(tǒng)的狀態(tài)炒考。
名字服務(wù)
名稱服務(wù)是將一個(gè)名稱映射到與該名稱有關(guān)聯(lián)的一些信息的服務(wù)。電話目錄是將人的名字映射到其電話號(hào)碼的一個(gè)名稱服務(wù)霎迫。同樣斋枢,DNS 服務(wù)也是一個(gè)名稱服務(wù),它將一個(gè)域名映射到一個(gè) IP 地址知给。在分布式系統(tǒng)中瓤帚,您可能想跟蹤哪些服務(wù)器或服務(wù)在運(yùn)行,并通過(guò)名稱查看其狀態(tài)涩赢。ZooKeeper 暴露了一個(gè)簡(jiǎn)單的接口來(lái)完成此工作戈次。也可以將名稱服務(wù)擴(kuò)展到組成員服務(wù),這樣就可以獲得與正在查找其名稱的實(shí)體有關(guān)聯(lián)的組的信息筒扒。
分布式鎖
為了允許在分布式系統(tǒng)中對(duì)共享資源進(jìn)行有序的訪問(wèn)怯邪,可能需要實(shí)現(xiàn)分布式互斥(distributed mutexes)。ZooKeeper 提供一種簡(jiǎn)單的方式來(lái)實(shí)現(xiàn)它們花墩。
集群管理
在分布式的集群中悬秉,經(jīng)常會(huì)由于各種原因,比如硬件故障冰蘑,軟件故障和泌,網(wǎng)絡(luò)問(wèn)題,有些節(jié)點(diǎn)會(huì)進(jìn)進(jìn)出出祠肥。有新的節(jié)點(diǎn)加入進(jìn)來(lái)武氓,也有老的節(jié)點(diǎn)退出集群。這個(gè)時(shí)候,集群中其他機(jī)器需要感知到這種變化聋丝,然后根據(jù)這種變化做出對(duì)應(yīng)的決策索烹。比如我們是一個(gè)分布式存儲(chǔ)系統(tǒng),有一個(gè)中央控制節(jié)點(diǎn)負(fù)責(zé)存儲(chǔ)的分配弱睦,當(dāng)有新的存儲(chǔ)進(jìn)來(lái)的時(shí)候我們要根據(jù)現(xiàn)在集群目前的狀態(tài)來(lái)分配存儲(chǔ)節(jié)點(diǎn)莽使。這個(gè)時(shí)候我們就需要?jiǎng)討B(tài)感知到集群目前的狀態(tài)侠畔。