jraft源码阅读8一异步高性能

jraft为了高性能,全流程都使用了Disruptor来做异步批量的处理

1 异步

从入口的NodeImpl类的apply方法就可以看到使用了异步了:


image.png

后面的所有的流程都是类似的情况了


image.png

写日志是异步的


image.png

发送日志给follower也是异步的


image.png

半数以上follower同意后应用到状态机也是异步的


image.png
2 批量

Disruptor的onEvent处理的参数有个endOfBatch,这个其实也很重要,这个给了我们批量处理的能力,可以连续处理一批。


image.png

批量消费减少了事件的触发,减少了流程的切换,提高了性能。

其他异步的地方基本都用到了批量,这里就不赘述了。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容