特性
YedMQ 聚焦于面向分布式 IoT 场景的 MQTT Broker 核心能力。下面列出的都是当前实现,而不是未来规划中的能力。
MQTT Broker 能力
- MQTT v3.1.1
- MQTT 5.0 常用客户端消息路径
- QoS 0、1、2
- 保留消息
- 遗嘱消息
- 持久会话
- MQTT 5.0 会话过期和消息过期
- 通过
$share/<group>/<filter>使用共享订阅 $SYS系统主题发布- 可配置 的最大消息大小
网络监听能力
- MQTT over TCP
- MQTT over TLS
- MQTT over WebSocket
- MQTT over Secure WebSocket
- REST 管理 API
多租户行为
- 租户身份可以由认证插件分配
- 会话、主题、保留消息和客户端身份都按租户隔离
- 未分配租户的连接会落到默认的
public租户
集群与高可用
- 基于 Raft 的集群协调
- 为 topic 元数据、session actor map 和 session state 分别维护 raft 组
- 通过
bootstrap和join两种启动模式支持首节点和扩容节点 - 提供 learner 添加、成员变更、指标查看和 raft 初始化相关 REST API
插件系统
- 插件目录位于
plugin.dir下的一级子目录 - 插件以子进程方式启动
- Broker 与插件通过本地 socket + Protobuf 通信
- hook 链按优先级排序
- 当前 Broker 侧主要接入认证、鉴权、消息发布和断连相关流程
运维与管理
- 基于 Basic Auth 保护的 REST API
- 插件列表、客户端列表、主题列表、保留消息和系统信息接口
- 集群指标和成员管理接口
- 可配置日志级别和监听器限流
尚未实现
- MQTT 5.0 增强认证、Topic Alias 和 Subscription Identifier
- 磁盘消息持久化
- Prometheus 指标
- Web UI 仪表盘