本章給出了raftexample中使用的傳輸層程式碼,補全了上一節中傳輸層與raft節點(raft server和channel server)的互動細節。下圖中流程的核心在於傳輸層中的streamRt
和pipelineRt
,raft的傳輸層通過這兩個roundtrip與其他節點互動,並通過streamReader
讀取來自其他節點的資訊進行處理。streamHandler
用於給msgAppV2Writer
和writer
提供連線,處理完之後返回給handler(raft example中好像沒有涉及streamHandler
的處理)。
該模組中使用了大量channel,可以借鑑其思想和方式。
原圖地址:transport