Zookeeper簡介
????????>開源的針對大型分布式系統(tǒng)的可靠協(xié)調系統(tǒng)
????????> 設計目標:將復雜且容易出錯的分布式式一致性服務封裝起來,構成一個高效可靠的原語集,并以簡單易用的接口提供給用戶使用。
? ? ? ? >功能:發(fā)布/訂閱,分布式協(xié)調/通知,配置管理,集群管理,主從協(xié)調,分布式鎖等。
Zookeeper特性:
????????最終一致性:保證最終數(shù)據能夠達到一致。(重要功能)
? ? ? ? 順序性:從同一個客戶端發(fā)起的事務請求,最終會嚴格地按照其發(fā)送順序被應用到Zookeeper中。
????????可靠性:一旦服務器成功的應用一個事務,并完成了客戶端的響應,那么該服務所引起的服務端狀態(tài)變更將會被一直保留下去。
????????實時性:Zookeeper不能保證兩個客戶端能同時得到剛更新的數(shù)據,如果需要最新數(shù)據,應該在讀數(shù)據之前調用sync()接口。
????????原子性:一次數(shù)據更新要么成功,要么失敗。
????????單一視圖:無論客戶端連接到哪個服務器,看到的數(shù)據模型都是一致的。
基本架構:

Zookeeper角色:
? ? ? ? Leader(領導者)
? ??????Follower(跟隨者)
? ??????Observer(觀察者)
選舉方式(分兩種)全新啟動期和運行期間
全新啟動期:

運行期間:(更正:步驟2改為(3,123))

數(shù)據模型Znode
? ? ? ? Zookeeper特有數(shù)據節(jié)點Znode,視圖類似于linux的文件系統(tǒng),是系統(tǒng)中最小的數(shù)據單元。并且可以保存數(shù)據,通過掛在子節(jié)點構成數(shù)狀層次化空間
節(jié)點類型
? ? ? ? 節(jié)點有三種:
????????????????????????持久節(jié)點 ? ? ? 臨時節(jié)點 ? ? ?順序節(jié)點
? ? ? ? 組合節(jié)點類型:
? ? ? ? ? ? ? ??????????持久節(jié)點
????????????????????????持久順序節(jié)點
????????????????????????臨時節(jié)點
? ? ? ? ? ? ? ? ? ? ? ? 臨時順序節(jié)點
搭建中遇到的問題
? ? ? ? 1、軟連接創(chuàng)建之后使用ll查看存在閃爍情況,檢查路徑后使用rm移除錯誤的連接重新創(chuàng)建解決問題。
? ? ? ? 2、創(chuàng)建完成后,在三臺機器上面啟動zookeeper,使用status查看提示進程未啟動,檢查了防火墻狀態(tài)。查看日志發(fā)現(xiàn)報錯大意是myid=5的zookeeper并未啟動,原因是因為在zoo.cfg中寫入了5臺server。在所有機器的進程都啟動后,發(fā)現(xiàn)只有1,2,4,5能查看到當前角色。進入node03,查看啟動日志,發(fā)現(xiàn)myid手誤打成了33,更正后重新啟動,所有節(jié)點都能正確查看到角色。
? ? ? ? ? ? 問題排除建議:檢查防火墻,檢查myid是否正確創(chuàng)建。遇到問題查看日志,里面或許存在蛛絲馬跡。
?未完待續(xù)....