本章给出了raftexample中使用的传输层代码,补全了上一节中传输层与raft节点(raft server和channel server)的交互细节。下图中流程的核心在于传输层中的streamRt
和pipelineRt
,raft的传输层通过这两个roundtrip与其他节点交互,并通过streamReader
读取来自其他节点的信息进行处理。streamHandler
用于给msgAppV2Writer
和writer
提供连接,处理完之后返回给handler(raft example中好像没有涉及streamHandler
的处理)。
该模块中使用了大量channel,可以借鉴其思想和方式。
原图地址:transport