RocketMQ 的整体架构?

发布于

一、四大角色

  • Producer:消息生产者。
  • Consumer:消息消费者,支持 Push/Pull 两种模式。
  • NameServer:路由注册中心,无状态,可集群部署,节点间不通信。
  • Broker:消息存储与转发,可主从部署。

二、工作流程

  1. NameServer 启动,Broker 启动后向所有 NameServer 注册路由信息并保持心跳。
  2. Producer 从 NameServer 获取 Topic 的路由信息,选择队列发送消息。
  3. Broker 存储消息,Consumer 从 Broker 拉取消息消费。

三、为什么用 NameServer 而不用 ZooKeeper

  • NameServer 轻量、无状态、启动快。
  • 各 NameServer 独立,互不依赖,可用性更高。
  • Broker 向所有 NameServer 广播,保证路由一致。