【RocketMQ每日一问】RocketMQ中哪些信息存储在文件中(有哪些文件)?

RocketMQ Broker 存储了以下主要文件:

  • commitlog/:存储未提交的消息。
  • consumequeue/:存储已提交的消息,供 Consumer 消费。
  • indexfile/:存储消息的索引文件,用于加速消息查询。
  • checkpoint:存储 Broker 的检查点信息,用于故障恢复。
  • abort:存储 aborted 消息,即因某些原因被中止的消息。
文件名作用
commitlog存储未提交的消息。
consumequeue存储已提交的消息,供 Consumer 消费。
indexfile存储消息的索引文件,用于加速消息查询。
checkpoint存储 Broker 的检查点信息,用于故障恢复。
abort存储 aborted 消息,即因某些原因被中止的消息。

commitlog

commitlog 文件采用顺序写的方式存储消息,每个消息占用一个固定大小的存储空间。commitlog 文件由多个 segment 文件组成,每个 segment 文件的大小为 1GB。当一个 segment 文件写满后,Broker 会创建一个新的 segment 文件继续存储消息。

consumequeue

consumequeue 文件存储已提交的消息,供 Consumer 消费。consumequeue 文件由多个队列组成,每个队列对应一个 topic。每个队列中的消息按照 FIFO(先进先出)的顺序排列。当一个队列中的消息被消费后,Broker 会将该队列中的消息删除。

indexfile

indexfile 文件存储消息的索引信息,包括消息的 offset、消息的 tag、消息的发送时间等。indexfile 文件采用哈希表的形式组织,便于快速查找消息。

checkpoint

checkpoint 文件存储 Broker 的检查点信息,包括当前已提交的消息 offset、当前已刷盘的消息 offset 等。checkpoint 文件用于故障恢复,当 Broker 发生故障时,可以从 checkpoint 文件中恢复 Broker 的状态。

ConsumeQueue: {
    topic1_queueId1: offset1,
    topic1_queueId2: offset2,
    ...
}

CommitLog: {
    logId1: offset1,
    logId2: offset2,
    ...
}

Flush: {
    topic1_queueId1: offset1,
    topic1_queueId2: offset2,
    ...
}

Last Shutdown Timestamp: timestamp

abort

abstore 文件存储 aborted 消息,即因某些原因被中止的消息。aborted 消息不会被发送给 Consumer,但会保留一段时间,以便用户进行故障排查。

  • 24
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小丸子呢

致力于源码分析,期待您的激励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值