RocketMQ 面试
RocketMQ 简介
【简单】RocketMQ 是什么?🌟
RocketMQ 是一个开源分布式消息中间件。最初由阿里巴巴开发,现在是 Apache 顶级项目。
RocketMQ 的核心概念
- 核心组件
- 生产者(Producer):从 NameServer 获取路由信息后,将消息发送到 Broker。
- 消费者(Consumer):从 NameServer 获取路由信息后,从 Broker 拉取并消费消息。
- 代理(Broker):负责消息的存储、投递和查询。采用主从结构保证高可用。
- 命名服务(NameServer):管理所有 Broker 的地址列表。无状态,简单高效。
- 逻辑存储
- 主题(Topic):消息的一级分类,生产者和消费者操作的逻辑对象。
- 标签(Tag):Topic 下的二级分类,用于对消息进行过滤。
- 消息(Message):包含 Body(消息体)、Topic、Tags(标签)、Keys(唯一键)等属性。
- 消息队列(Message Queue):Topic 在物理上的分区,是负载均衡和并行处理的最小单位。
- 物理存储
- 提交日志(Commit Log):所有 Topic 的消息都顺序追加到这一个文件中。这是实现高吞吐写入的关键。
- 消费队列(Consume Queue):作为 CommitLog 的索引文件。每个 Queue 对应一个,记录消息在 CommitLog 中的位置,实现高效的读取。
- 索引文件(Index File):提供按 Message Key 或时间范围查询消息的能力。
...大约 32 分钟