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