etcd raft 處理流程圖系列1-raftexample

最近在看raft相關的程式碼和實現,發現etcd的raft模組在實現上還是比較靈活的,但缺點就是需要用戶實現比較多的功能,如存儲和網路等,同時帶來的優點就是不會對用戶的存儲和傳輸作限制。網上對該模組的描述也比較多,這裡我主要根據程式碼畫出簡易的處理邏輯,程式碼邏輯可以參考這裡(後續流程圖也會按照這個系列的講解順序來)。

該例子給出了etcd raft處理的總體架構圖,但並不涉及raft處理的細節,綠底部分為raft節點的server,右下側為需要用戶實現的存儲和傳輸層。右上側為對外的Http server,處理添加新表項、增加/移除raft節點等,並通過不同的channel與raft server進行交互。

下面官方給出的例子的處理邏輯:

原圖地址:raftexample

參考

etcd-raftexample-源碼簡析

Tags: