本章節博客開始深刻下zookeeper的配置文件分析,集羣主從選舉機制,節點類型講解等內容。javascript
一塊兒學習,一塊兒進步。繼續沉澱,慢慢強大。但願這文章對您有幫助。如有寫的很差的地方,歡迎評論給建議!java
初寫博客不久,我是楊展浩。這是個人第七篇博客。加油!!!程序員
配置文件內容很少,貼圖完事:redis
zookeeper的集羣與redis集羣概念很相似。zookeeper的集羣用 Leader領導者、Follower跟隨者來標識。Redis的集羣使用Master主、Slave歷來標識。服務器
選舉機制:初次進來的zookeeper服務,在參與選舉中優先投本身一票,當發現本身的票數沒超過集羣的半數以上的時候,就會投出另外一票給當前集羣中的id最大的那一個zookeeper服務,zookeeper服務一次開啓加入集羣,當有一個zookeeper服務獲得的投票數超過集羣的半數以上,該zookeeper服務就當選Leader領導者了,然後面加入的zookeeper服務就算id大也不能當選Leader領導者,遵循先到先得原則,由於前面已經選出了一個Leader了,除非前面當選得Leader(zookeeper服務)掛了,選舉從新開始。
先要存在一個 main 線程。網絡
在 main 線程中建立Zookeeper客戶端,這時就會建立兩個線程,一個負責網絡鏈接通訊(connect),一個負責監聽(listener )。學習
經過 connect 線程將註冊的監聽事件發送給Zookeeper服務。spa
在Zookeeper服務的註冊監聽器列表中將註冊的監聽事件添加到列表中。線程
Zookeeper服務監聽到列表中有數據或路徑發生變化,就會將這個消息發送給 listener 線程。code
listener線程內部調用了process()方法(就是程序員自定義的處理代碼)。
監聽節點數據的變化 get path [watch]
監聽子節點增減的變化 Is path [watch]