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

原图地址:transport
etcd-raft 网络传输源码简析