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