RaftMessage

proto

send_raft_message

在PeerFsmDelegate handle_msg之后,会调用collect_ready 获取raft中可以发送的raft messages. 在RaftPoller::endhandle_msg中产生的write batch写入磁盘,然后更新完PeerStorage状态后, 会再Raft的advance_append获取要发送的raft message.

这些raft message 都会通过调用RaftClient::send 先将消息缓存到队列里面, 在最后RaftPoller::end或者RaftPoller::pause时,会调用RaftClient::flush, 将raft message真正的发送出去。

grpc 接口: raft/batch_raft

on_raft_message

peer收到RaftMessage后处理流程