Rocketmq 如何使用dledger保證主從節點故障自動恢復的

前言:

     在rockemq4.5之前,rocketmq集羣架構都是master-slave主從架構部署,如下圖,master節點負責寫入消息,slave節點負責同步master節點消息。假設master-1節點有個topic-A,此時如果master節點宕機無法恢復,此時我們是無法寫入topic-A消息的,這個時候rocketmq對於我們producer服務來說來說是不可用的,這個時候只有讓slave-1節點升級生master節點,服務纔可用。

  試想一下,正好我們這個時候在做限時促銷活動,很多用戶參與,服務突然不可用,那損失得多大,那麼如何避免這種問題呢,有沒有一種辦法可以讓slave-1自動升級爲master節點提供服務呢?接下來我們就會介紹一下rocketmq deedger 架構模式。

rocketmq dledger 架構

   dledger 使用的是raft協議,我們都知道raft協議有leader選舉, leader-follower 節點數據同步兩個功能,他能保證數據在多個節點的最終一致性。我們還是先直接介紹一下rocketmq dledger集羣架構吧,如下圖:

1. 一個broker集羣至少三個節點,一個leader節點,2個follower節點。leader節點負責負責寫入消息,follower負責同步數據。

2.如果leader節點掛了,follower會在倒計時結束,觸發leader選舉,選舉一個新的leader節點負責寫入數據。

3.broker集羣的每個節點也都會向namesrv所有的節點進行註冊,這點和master-slave架構沒有任何區別。

 

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