zookeeper的選舉機制是如何應對腦裂的

本來想寫“zookeeper的選舉機制”,但是選舉機制的具體流程還沒研究,只是知道了選舉機制是如何避免腦裂的,就先寫個小部分,等後面擴展。

 

在網上看了好多文章,都在介紹zookeeper是怎麼解決腦裂的。感覺說的不清晰。

首先,zookeeper集羣本身現在是不會出現腦裂的。

腦裂是存在一般分佈式集羣中的常見問題,zookeeper通過quorums機制避免了這個問題。它是怎麼避免的呢?簡單一句話就是:只有超過半數的節點有效,zookeeper集羣纔有效。

還有zk節點數爲什麼配置成奇數,參考https://www.cnblogs.com/smy-yaphet/p/10369310.html

 

zk集羣真的不會出現腦裂嗎?

本應該先說是不是,再說爲什麼是或不是。但是這個問題我還沒有答案。

quorums機制確實可以防止最終集羣只有一個master節點。但是,在master節點剛和其他slave失聯的時候,master可能還沒宣佈自己死亡吧?這時會不會出現短暫的腦裂狀態?

以前的client都是註冊在舊master上,舊master沒死,只是因爲網絡問題和其他slave節點失去了聯繫。此時的client應該還能和master交互,並將數據寫到了舊master上。過了一個指定時間之後,master發現自己失聯了,然後宣佈自己死亡,client再重新連接到新選出來的master上,剛纔寫的數據丟失了……

在這個切換過程中,是不是可以認爲是個腦裂狀態?zk是否解決了這個問題?有沒有辦法解決這個問題?如果沒辦法解決這個問題,數據會寫丟,client應該做什麼容錯?待解……

這篇文章好像提到了一點:https://www.cnblogs.com/kevingrace/p/12433503.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章