jraft源码阅读3一follower的主流程

follower的主流程就比较简单了,一个是处理leader的写log的请求,另外就是处理leader的心跳了,应用到状态机了。非常的简单。

1 接收leader的写log的请求

FollowerStableClosure的handleAppendEntriesRequest


image.png

可以看到这里只是写日志而已

2 应用到状态机

这里就是心跳的请求了。心跳的请求可以理解为特殊的写log的请求,只是data为空,其他的没区别。
还是FollowerStableClosure的handleAppendEntriesRequest


image.png
image.png

所以follower的状态机可见,是要比leader晚一个心跳间隔时间的。这样虽然降低了一些实时性,但是可以减少很多请求,提高了吞吐率。不然每个都再通知一遍,是要多很多的请求的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。