聊聊腦裂問題(split brain)

2021-10-09 05:54:42 字數 1071 閱讀 4094

hdfs 1.0 架構,取自:《hadoop:the definitive guide》

namenode單點問題

隨著集群擴充套件,namenode管理檔案元資料存在瓶頸

增加協調者(coordinator)管理一主多從的namenode節點提供高可用的namenode

federation聯邦解決方案,可以理解為分片方案類似於分庫分表

正常情況下的協調者

機房1與機房2出現網路故障後,機房2重新選舉leader,出現腦裂問題。暴露兩個leader同時處理讀寫請求,造成分割槽資料不一致問題

著名的paxos演算法

引入「過半概念」,投票選舉,只有通過過半數的贊成票才可以被選舉為leader。那麼網路故障導致的分割槽問題解決了,但是它的限制也很明顯就是如果出現過半的機器宕機,會導致整個集群無法正常提供服務

raft演算法

如果沒有心跳超時時間設定,那麼節點一直處於選舉狀態,可能會頻繁的發生leader切換,豈不是庸人自擾?

顧名思義,冗餘通訊的方式來保證通訊的高可用性,避免出現分割槽

引入公共共享資源,第三方儲存。例如:資料庫(當然還可以選其他儲存:redis、zk等)維護leader資訊

leader選舉成功維護一條資料庫資料,表明自身為leader,對該資料的讀寫以序列的方式保證併發安全性

如果follower與leader失聯,嘗試選舉自身為leader,結果發現資料庫中已經有leader存在

通過rpc、ssh等等方式執行已經存在的leader伺服器上的方法終止老leader程序,如果成功則更新leader為自身

隔離的方式也採用了冗餘通訊的方式,如果遠端終止leader程序的呼叫失敗,則集群也會持續處於不可用狀態

hdfs腦裂問題選用的為:隔離方案

zookeeper腦裂問題選用的為:選舉法(過半概念),zab(zookeeper atomic broadcast)

it 腦裂 讓我們聊聊腦裂這事情

萬事皆有因 最近im雲平台也好,社交應用也好,大量的使用ejabberd的廠商湧現出來了。不過所有使用ejabberd廠商可能都會遇到mnesia腦裂的問題。在這裡打算簡單的談談腦裂這個事情。什麼是腦裂 我在這裡面給個非官方的定義吧。當乙個集群的不同部分在同一時間都認為自己是活動的時候,我們就可以將...

Elasticsearch集群的腦裂問題和解決方案

什麼是腦裂?如果發生網路中斷或者伺服器宕機,那麼集群會有可能被劃分為兩個部分,各自有自己的master來管理,那麼這就是腦裂。es集群有可能會出現腦裂問題,原因主要有兩個 如果集群中節點不在同乙個網段有可能是網路延遲造成的 如果集群中的節點在同乙個網段,有可能是主節點負載太大造成的 解決方案主要有兩...

mysql腦裂 如何防止HA集群的腦裂

luozhaode 博主這篇有關腦裂的文章是我看到過的理解的最透徹的。真是學習了,不過在實際工作中還是對腦裂存在著疑惑,懇請博主釋疑一下。謝謝!我們熟知的腦裂問題一般表現形式是 在mysql主備上安裝集群軟體,比如keepalive管理vip的飄逸 heartbeat管理包括vip在內的共享資源的轉...