fix: 压测客户端改为 MQTT 5 并完成 hello 与收发统计
This commit is contained in:
@@ -1698,3 +1698,13 @@ issue #3 未关闭,`feat/fix-3-downlink-deadlock` 未合入 `main`。下面是
|
||||
- 原因:`resp` 回不来是测试客户端丢掉合帧里的后续 MQTT 包,以及并发写把发往服务端的流写乱;不是服务端死锁。
|
||||
- 备选方案:合入 fix3 的 broker `OnPublish`/延后队列(否决,基于错误假设,还会改 PUBACK 语义)。
|
||||
- 影响:跨线改了总控目录 `test/harness` 与身份线 `emit`;不改 `internal/broker/`。所有经 `DialMQTTWebSocket` 的测试客户端一并受益。
|
||||
|
||||
### 复审修复 T-03
|
||||
|
||||
1. **压测工具改为 MQTT 5 认证握手并覆盖收发场景**
|
||||
- 日期:2026-09-30
|
||||
- 原条款:PRD 第 8 节规模/吞吐/延迟;DEVELOPMENT 第 5 节 CONNECT(ClientID=Username=端编号、CleanStart、心跳 30)与 hello;issue #64。
|
||||
- 实际做法:重写 `test/load`。`mqttbench` 用 MQTT 5 连接(WebSocket `/mqtt` 或裸 TCP),完成订阅与 hello;端可通过管理接口 CSV 批量开通、自助注册,或 `-reuse` 复用已开通编号。场景:保持 N 条在线;按目标速率单聊 send/ack;建群发一条并统计从提交成功到成员收到 `msg` 的耗时。输出提交/送达 P50/P95/P99、错误码分布、掉线数。用法见 `test/load/README.md`。不进 CI;`go test ./test/load/` 只跑编码/分位单测、假 broker CONNACK 和短时冒烟。长时间 1000 连接 / 10 分钟本轮不跑。
|
||||
- 原因:原工具只发 MQTT 3.1.1 CONNECT、无用户名密码、无 hello/收发,连不上 NixMsg,也测不出 PRD 第 8 节任何指标。
|
||||
- 备选方案:直接用四套 SDK 压测(否决:工具需覆盖裸设备路径,且不改 sdk)。
|
||||
- 影响:仅 `test/load/*` 与本文本节;不改 broker/message/sdk。本地验收为 50 连接、每秒 20 条、1 分钟出报告。
|
||||
|
||||
Reference in New Issue
Block a user