RocketMQ事务消息
通过Op消息来确定提交或回滚事务的最终状态
一阶段存储的消息的内容 二阶段时恢复出一条完整的普通消息 然后走一遍消息写入流程
消息查询
按照MessageId查询消息
客户端通过messageId得到broker地址 然后再通过commitlog offset读取真正的记录
按照Message Key查询消息
文件大小是固定的等于40+500W*4+2000W*20= 420000040个字节大小
- Header
保存一些总的统计信息
- Slot Table
不保存真正的索引数据,而是保存每个槽位对应的单向链表的头
- 20*2000W
20*2000W 是真正的索引数据 即一个 Index File 可以保存 2000W个索引。
类似于HashMap数组+链表的数据结构
Timestamp记录的是消息storeTimestamp之间的差 并不是一个绝对的时间