RocketMQ 的存储结构是怎样的?

参考答案

消息存储是 MQ 消息队列中最为复杂和最为重要的一部分。

消息生产者发送消息到 Broker ,会按照顺序存储在 CommitLog 文件中,每个 CommitLog 文件的大小为 1G 。

如图所示:

RocketMQ 的存储结构是怎样的?

RocketMQ 的几个主要组件说明:

  • Commit Log:存储所有的消息元数据,包括 Topic、QueueId 以及 message
  • CosumerQueue:消费逻辑队列,存储消息在 CommitLog 的 offset
  • IndexFile- 索引文件:存储消息的 key 和时间戳等信息,使得 RocketMQ 可以采用 key 和时间区间来查询消息

RocketMQ 将消息均存储在 CommitLog 中,并分别提供了 CosumerQueue 和 IndexFile 两个索引,来快速检索消息。

 

以上,是消息队列 RocketMQ 面试题【RocketMQ 的存储结构是怎样的?】的参考答案。

输出,是最好的学习方法

欢迎在评论区留下你的问题、笔记或知识点补充~

—end—

👇阅读作者更多技术干货👇

阿里架构 |双11秒杀 |分布式架构 |负载均衡 |单点登录 |微服务 |云原生 |高并发 |架构师

以上

关注作者「mikechen」公众号,获取更多技术干货!

后台回复架构,即可获取《阿里架构师进阶专题全部合集》,后台回复面试即可获取《史上最全阿里Java面试题总结

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧