RocketMQ
概念
Apache RocketMQ 是一个分布式消息中间件,最初由阿里巴巴开发,后捐赠给 Apache 基金会,适用于高并发、高吞吐、高可靠的异步通信场景。
用于在不同系统之间可靠地传递消息,实现系统解耦通信、异步处理和流量削峰。
官网:https://rocketmq.apache.org/
社区教程网站:https://rocketmq-learning.com/
术语
- Message(消息):传输的基本单元,包含了具体的业务数据以及一些元数据
- Topic(主题):Topic 是一类消息的逻辑分类名,是 Apache RocketMQ 中消息传输和存储的顶层容器。一个 Topic 可以被多个生产者写入,同时也能被多个消费者订阅。
- Queue(队列):每个 Topic 被划分为多个 Queue,这些队列用于存储消息。生产者发送到 Topic 的消息会被分配到其下的各个 Queue 中;消费者则是从这些 Queue 中拉取消息进行消费。
- Subscription(订阅):消费者对某个 Topic 消息的兴趣表达。订阅关系由消费者分组动态注册到服务端系统,并在消息传输中按照订阅关系定义的过滤规则进行消息匹配和消费进度的维护。
- Producer(生产者):生产者是消息产生的源头,将消息发送到服务端指定 Topic。
- Consumer(消费者):消费者负责从服务端中拉取消息并进行处理。
- ProducerGroup(生产者组):是一组生产者的逻辑分组,共享同样的 Topic 发送配置,实现发送端的负载均衡和容错。如果组内某个生产者失败,其他生产者可以继续工作,保证消息发送的连续性。
- ConsumerGroup(消费者组):系统中承载多个消费行为一致的消费者的负载均衡分组。和消费者不同,消费者分组并不是运行实体,而是一个逻辑资源。分组中的消费者共同订阅同一个 Topic 并以某种策略(如广播、集群消费)消费消息。
常用部署组件
- Broker:RocketMQ 的核心服务节点,负责接收来自 Producer的消息、存储消息以及将消息转发给 Consumer
- NameServer:是 RocketMQ 的路由服务集群,它不保存任何消息数据,而是维护着所有 Broker 的路由信息(包括 Broker 存活情况、各 topic 的路由信息等),在发送或订阅消息前,都需要先从 NameServer 获取 Broker 的路由信息,之后才能正确地与 Broker 通信
- Proxy:作为一个轻量级的代理服务器,位于客户端与 Broker 之间。主要职责包括负载均衡、协议转换、安全控制、网络优化等
- Controller:RocketMQ 5.0 新增的组件,负责管理和协调系统的整体状态。如 Broker 宕机时,它将进行调度,对 Broker 集群进行选举管理
- Dashboard:RocketMQ 提供的一款可视化管理界面
安装部署
常见部署形态
单节点
最简单的部署方式,满足就基本的消息收发需求

主备节点
启动多台相同名字的 Broker,并设置其角色为备机,则可以实现最简单的主备模式。备节点可以在主节点宕机时提供一定读能力

RocketMQ
http://xwww12.github.io/2026/07/23/中间件/RocketMQ/