比較Raft算法和Paxos算法之後,確實能感受到Raft算法更加接近正常人的思維邏輯, Paxos反而比較專業?

本文會說一些Raft算法實現上的一些考量, 我目前還沒有正式開始開發Raft的實現. 文中所有的內容僅供參考.

Raft最基礎分為三種狀態: Leader, Follower, Candidate. 整個Raft主體即是一個狀態機.

每個RaftNode都需要處理外部的事件.所以我們可以採用事件驅動模型.

整體我們可以拆分為三個部分:

  • RaftProcessor: 處理事件的處理器.
  • EventDispatcher: 負責接收外部任務,發送給Raft本體, 或者接收Raft本體發來的事件,向外發佈.
  • LogSynchronizer: 同步LogBuffer中的日誌到Raft本體.

三個部分可以使用Channel來到達互相通信.