1、Zookeeper理論基礎
1.1、Zookeeper含義
Zookeeper是一個分佈式協調應用程序服務器,其爲分佈式系統提供一致性服務。其一致性是通過Paxos算法的ZAB協議完成的。其主要功能包括:配置維護、域名服務、分佈式同步、集羣管理等。
下圖是官網解釋:
1.2、zookeeper如何保證一致性
zk是如何保證分佈式系統一致性呢?是因爲zk是具有以下幾方面原因:
1.2.1 順序一致性
從同一個客戶端發起多個事務請求(寫操作請求),最終會被嚴格按照發起順序記錄到zk中。
1.2.2 原子性
所有事務請求的結果在集羣中所有主機的應用結果都是一致的。要麼都應用成功,要麼都運用失敗。
1.2.3 單一視圖
無論client連接的是zk集羣中的哪臺機器,其看的的數據模型都是一致的。
1.2.4 可靠性
一旦zk成功執行了某個事務,則其引發的服務器狀態變化會被一直保留下來,直到另一個事務將其改變。
1.2.5 最終一致性
一旦zk成功執行了某個事務,zk可以保證在很短的時間後,客戶端最終可以從任意的zk主機上讀取到最新的數據。但不能保證實時讀取。