综合UML图
我发现idea能直接把一个包展开,删掉test类,最终如下,真多东西(似乎本地放大是高清的)

后面store模块按照上图进行各类讲解
TransientStorePool:池化管理多个ByteBuffer对象,进行借与还的操作
AppendMessageStatus 与 AppendMessageResult:描述追加消息到MappedFile的结果,状态
PutMessageStatus 与 PutMessageResult:描述存放消息到日志的结果,状态(理解为上面Append的上层)
FlushDiskType:代表同步刷盘或者异步刷盘
AppendMessageCallback:写消息的接口,返回AppendMessageResult代表追加到MappedFile的结果
ReferenceResource:MappedFile父类,用于记录引用次数,提供'增加引用',‘减少引用’,shutdown操作
SelectMappedBufferResult:描述选取MappedFile中,一部分ByteBuffer 的结果
结构
文件树
结构如下

刷盘策略
refer
http://blog.csdn.net/meilong_whpu/article/details/76922182
https://github.com/YunaiV/Blog/blob/master/RocketMQ/1004-RocketMQ%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90%EF%BC%9AMessage%E5%AD%98%E5%82%A8.md
https://fdx321.github.io/2017/08/22/%E3%80%90RocketMQ%E6%BA%90%E7%A0%81%E5%AD%A6%E4%B9%A0%E3%80%916-%E6%B6%88%E6%81%AF%E5%AD%98%E5%82%A8/
http://www.voidcn.com/article/p-aevitnds-bhg.html
https://github.com/YunaiV/Blog/blob/master/RocketMQ/1009-RocketMQ%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90%EF%BC%9A%E9%AB%98%E5%8F%AF%E7%94%A8.md
http://blog.csdn.net/KilluaZoldyck/article/details/76775397
问题
最后存在commitLog中的文件格式是怎样的
网友评论