比較Raft算法和Paxos算法之後,確實能感受到Raft算法更加接近正常人的思維邏輯, Paxos反而比較專業?
本文會說一些Raft算法實現上的一些考量, 我目前還沒有正式開始開發Raft的實現. 文中所有的內容僅供參考.
Raft最基礎分為三種狀態: Leader, Follower, Candidate. 整個Raft主體即是一個狀態機.
每個RaftNode都需要處理外部的事件.所以我們可以採用事件驅動模型.
整體我們可以拆分為三個部分:
- RaftProcessor: 處理事件的處理器.
- EventDispatcher: 負責接收外部任務,發送給Raft本體, 或者接收Raft本體發來的事件,向外發佈.
- LogSynchronizer: 同步LogBuffer中的日誌到Raft本體.
三個部分可以使用Channel來到達互相通信.
