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

2021-10-13 08:29:19 字數 608 閱讀 1060

luozhaode:博主這篇有關腦裂的文章是我看到過的理解的最透徹的。真是學習了,不過在實際工作中還是對腦裂存在著疑惑,懇請博主釋疑一下。謝謝!

我們熟知的腦裂問題一般表現形式是:

在mysql主備上安裝集群軟體,比如keepalive管理vip的飄逸、heartbeat管理包括vip在內的共享資源的轉移等。主備間是通過心跳網路來維持的,一旦主備間的通訊中斷或者心跳網路不穩定,彼此都不知道對方的狀態而搶奪包括vip在內的共享資源,比如都將vip占為己有,從而業務兩邊可訪問,導致資料錯亂。

而實際工作中,我們並沒有在mysql的主備庫上安裝集群軟體,而是由第三方hamonitor(和mha的manage node角色相似)來監控主庫是否可用,當然為了達到這個目的,我們在mysql主備庫中都會安裝agent來和monitor進行通訊。當monitor發現主庫宕掉以後,就會先將vip從主庫中摘除,進行主備切換,然後將vip繫結到備庫上。這種情況下,還會發生腦裂問題嗎,是不是腦裂的表現形式轉移成了monitor和主庫之間的鏈路中斷而引出的問題呢?

著這裡,第三方hamonitor如果是單獨的節點,其實hamonitor就起到了仲裁的作用。monitor和主庫之間的鏈路中斷會導致舊主的vip摘不掉,這個不屬於腦裂的問題而是資源釋放的問題。

elasticsearch集群如何防止腦裂

es腦裂 乙個大的es集群 成了多個小的集群。比如有 a b c d 四個es a b c d 之間選取乙個master,比如master是a。若某時刻 c d 訪問不到a b能訪問到a。c d之間會重新選舉乙個master。這樣整個a b c d的es集群就會 為a b 和 b c 兩個集群。防止...

Elasticsearch之集群腦裂

集群腦裂是什麼?所謂腦裂問題 類似於精神 就是同乙個集群中的不同節點,對於集群的狀態有了不一樣的理解。由於某些節點的失效,部分節點的網路連線會斷開,並形成乙個與原集群一樣名字的集群,這種情況成為集群腦裂 split brain 現象。這個問題非常危險,因為兩個新形成的集群會同時索引和修改集群的資料。...

Elasticsearch之集群腦裂

所謂腦裂問題 類似於精神 就是同乙個集群中的不同節點,對於集群的狀態有了不一樣的理解。由於某些節點的失效,部分節點的網路連線會斷開,並形成乙個與原集群一樣名字的集群,這種情況成為集群腦裂 split brain 現象。這個問題非常危險,因為兩個新形成的集群會同時索引和修改集群的資料。1.網路 由於是...