一、前言
在學(xué)習(xí)了Paxos在Chubby中的應(yīng)用后,接下來(lái)學(xué)習(xí)Paxos在開(kāi)源軟件Zookeeper中的應(yīng)用。
二、Zookeeper
Zookeeper是一個(gè)開(kāi)源的分布式協(xié)調(diào)服務(wù),其設(shè)計(jì)目標(biāo)是將那些復(fù)雜的且容易出錯(cuò)的分布式一致性服務(wù)封裝起來(lái),構(gòu)成一個(gè)高效可靠的原語(yǔ)集,并以一些列簡(jiǎn)單的接口提供給用戶使用。其是一個(gè)典型的分布式數(shù)據(jù)一致性的解決方案,分布式應(yīng)用程序可以基于它實(shí)現(xiàn)諸如數(shù)據(jù)發(fā)布/發(fā)布、負(fù)載均衡、命名服務(wù)、分布式協(xié)調(diào)/通知、集群管理、Master選舉、分布式鎖和分布式隊(duì)列等功能。其可以保證如下分布式一致性特性。
?、?nbsp;順序一致性,從同一個(gè)客戶端發(fā)起的事務(wù)請(qǐng)求,最終將會(huì)嚴(yán)格地按照其發(fā)起順序被應(yīng)用到Zookeeper中去。
?、?nbsp;原子性,所有事務(wù)請(qǐng)求的處理結(jié)果在整個(gè)集群中所有機(jī)器上的應(yīng)用情況是一致的,即整個(gè)集群要么都成功應(yīng)用了某個(gè)事務(wù),要么都沒(méi)有應(yīng)用。
③ 單一視圖,無(wú)論客戶端連接的是哪個(gè)Zookeeper服務(wù)器,其看到的服務(wù)端數(shù)據(jù)模型都是一致的。