Silent MQTT 是 Silent Odyssey 路线图中的第一阶段实验项目,目标是在 Silent 框架上实现一个最小可用的 MQTT Broker,并通过互通与压测验证其生产级潜力。
- 实现 MQTT 协议最小子集(连接、订阅、发布、QoS 0/1/2)。
- 提供 互通性验证(与
mosquitto_pub/sub等客户端通信)。 - 在 高并发场景下压测,验证连接保持与消息投递性能。
- 为后续协议实验提供可复用的基础模块。
- ✅ CONNECT / CONNACK
- ✅ SUBSCRIBE / SUBACK
- ✅ PUBLISH / PUBACK / PUBREC / PUBREL / PUBCOMP(QoS 0/1/2)
- ✅ DISCONNECT
- ✅ 保活心跳(Keep Alive)
- ✅ 遗嘱消息(Last Will)
推荐使用 mqtt-bench 或 mosquitto-clients。
示例(1000 并发连接,持续 30 秒):
mqtt-bench -broker tcp://127.0.0.1:1883 -clients 1000 -count 10000指标收集:
- 吞吐量(msg/s)
- 平均/最大延迟
- 内存/CPU 占用
- 连接稳定性(掉线率)
- 启动 Silent MQTT broker:
cargo run- 使用 Mosquitto 测试:
mosquitto_sub -h 127.0.0.1 -t test
mosquitto_pub -h 127.0.0.1 -t test -m "hello from Silent"- 验证输出:订阅端应收到消息。
silent-mqtt/
├── src/
│ ├── main.rs # 入口,启动 broker
│ ├── broker/ # broker 核心逻辑
│ └── protocol/ # MQTT 协议解析
├── benches/ # 压测脚本与工具
├── docs/ # 互通记录与性能报告
└── README.md- 实现并验证最小可用的 MQTT Broker。
- 在 mosquitto_pub/sub 下成功互通。
- 给出至少一份压测结果报告(QPS、延迟、资源占用)。
- 文档化部署与测试方法。