1. 主页
  2. 文档
  3. RobustMQ Tutorial CN
  4. 系统架构
  5. Broker Server

Broker Server

Broker Server是计算层组件,主要完成各种不同消息协议的数据接入及其相关功能的实现。从设计角度来看,它希望支持MQTT 3.1/3.1.1/5.0、AMQP、RocketMQ Remoting/GRPC、Kafka Protocol、OpenMessing、JNS、SQS等主流消息协议。架构如下:

如上图所示:

  1. Broker Server 依靠 Placement Center 完成集群组建,比如节点发现、集群元数据存储等等。
  2. Broker Server 中的 Node 是无状态的,只负责和客户端 SDK 交互,完成数据的写入和读取。
  3. Broker Node 会将自身的一些运行的元数据存储在 Placement Center(PC),在新的Broker节点启动时,会从 Placement Center读取、加载、缓存这部分信息。
  4. Broker Node 启动时,会往 Placement Center集群的Leader节点注册本节点的信息。
  5. Broker Node 会定时向Placement Center集群发送心跳信息,一旦心跳超时,PC将会移除该节点,并将该节点执行的任务迁移到其他可用节点。
  6. Broker Server 支持TCP、GRPC两种协议,TCP协议用来处理各种标准消息协议(比如MQTT、AMQP等)的接入,GRPC协议用来完成集群内部的功能交互,比如Broker本身的管理、监控信息拉取等等。
  7. 在协议相关逻辑处理部分(Logical Processing)会完成消息队列相关功能的开发,比如死信消息,延迟消息、顺序消息等等功能。通过代码块的形式提供给不同协议使用。
  8. 在消息数据存储部分,是通过 Storage Adapter 来完成数据的读取和写入的。
  9. Broker Node 会不断地定时向 Placement Center 上报自身的运行信息。 Placement Center 会根据Broker Node上报的运行信息以及多维度的信息来判断是否执行某些管理操作,然后调用 Broker 的GRPC接口完成对应操作。