heimamq源码--------01-------120
核心的配置:
刷盘是开的线程刷盘。
代码:
首先从节点是不能去写的。
---120---
看下源码:
第一步校验。
第二步:进入commitLog.putMessage();
第三步:拿到映射文件,加锁
空或者写满,要创建一个新的。
第四步:写
进入:
这一步是走到了这里:
都写到缓冲区,这个就是堆外申请的缓冲区。写是写到了堆外的缓冲区。
设置:messageId。
剩余消息的长度大于总长度就创建新的文件。
获得消在队列的偏移量,知道去哪里写。
开始写:
创建新文件。
真正的写:
返回给MappFile再返回给commitLog。
第五步:刷盘
----121-----
最终落盘。
:运行期间的配置信息
:消息索引
索引是以主题为文件夹,每个文件是多个消息队列,存的索引信息。
:根据消息id或者属性去索引的。
:看broker是不是正常关闭的。
---
----122-----