跳至主要內容
RocketMQ 面试

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 分钟分布式分布式通信MQRocketMQ分布式通信MQRocketMQ面试
RocketMQ 基本原理

RocketMQ 基本原理

原理

分布式消息系统作为实现分布式系统可扩展、可伸缩性的关键组件,需要具有高吞吐量、高可用等特点。而谈到消息系统的设计,就回避不了两个问题:

  1. 消息的顺序问题
  2. 消息的重复问题

顺序消息

第一种模型

假如生产者产生了 2 条消息:M1、M2,要保证这两条消息的顺序,应该怎样做?你脑中想到的可能是这样:


钝悟...大约 7 分钟分布式分布式通信MQRocketMQJava中间件MQRocketMQ
RocketMQ 快速入门

RocketMQ 快速入门

Apache RocketMQ 是一个分布式 MQ 和流处理平台,具有低延迟、高性能和可靠性、万亿级容量和灵活的可扩展性。

RocketMQ 由阿里巴巴孵化,被捐赠给 Apache,成为 Apache 的顶级项目。

RocketMQ 概念

img
img

钝悟...大约 20 分钟分布式分布式通信MQRocketMQJava中间件MQRocketMQ