Skip to content

内置 MQTT Broker ​

FastBee 开源版内置了基于 Netty 开发的 MQTT Broker,无需额外部署 EMQX 或其他 MQTT 服务端。

核心特性 ​

  • 协议支持:MQTT 3.1.1
  • 连接方式:TCP (1883) + WebSocket (8083)
  • QoS 等级:QoS 0、QoS 1
  • 消息保留:支持 Retain 消息
  • 遗嘱消息:支持 Last Will and Testament
  • 会话管理:支持持久会话与清理会话
  • 认证机制:产品 ID + 设备密钥认证

架构设计 ​

模块结构 ​

模块说明
mqtt-brokerMQTT Broker 核心实现
MqttConnectCONNECT 消息处理与认证
MqttPublishPUBLISH 消息处理
MqttSubscribeSUBSCRIBE 订阅管理
MqttUnsubscribeUNSUBSCRIBE 取消订阅
MqttPubAck/PubRec/PubRelQoS 确认流程
ClientManager客户端连接管理
SessionManager会话状态管理
RetainMsgManager保留消息管理
ResponseManager响应消息管理

连接认证流程 ​

  1. 客户端发送 CONNECT 消息(ClientID=设备编号, Username=产品ID, Password=设备密钥)
  2. Broker 调用 AuthService 验证凭据
  3. 验证通过后创建会话,注册到 ClientManager
  4. 发送 CONNACK 确认

消息流转 ​

  1. 设备 PUBLISH → MqttPublish 处理 → 主题匹配 → 路由到业务层
  2. 业务层下发 → ResponseManager → 找到目标 Session → PUBLISH 到设备
  3. 订阅/取消订阅 → 更新 Session 的订阅列表

性能调优 ​

  • 连接池:单机支持数千并发连接
  • Netty 参数:通过 NettyConfig 调整 IO 线程数、Boss/Worker 比例
  • 内存:合理设置 Netty 缓冲区大小
  • 消息队列:使用 Redis 作为消息中间件,解耦 Broker 与业务层

蜂信物联 | fastbee.cn