可以,emqtt-bench 能控制 clientid,但不是“按 CSV 一条条读取 clientid”这种模式。
clientid 规则是 --prefix + -n/--startnumber(可选 --shortids),按序号自动生成。
例如:
./emqtt_bench conn -h <broker> -c 1000 --prefix cid_ -n 10000
./emqtt_bench sub -h <broker> -c 1000 --prefix cid_ -n 10000 -t bench/%i
这样 clientid 会是 cid_10000、cid_10001 …
如果你必须使用一组离散 clientid(CSV),emqtt-bench 目前没有内置能力,--topics-payload 只控制 topic/payload,不控制 clientid。
可行方案:
- 把 HTTP 鉴权改成接受前缀+序号规则(最省事)。
- 用脚本分片启动多组 emqtt-bench,不同
--prefix/-n区间。 - 必须严格按 CSV 登录时,换 JMeter 这类可读数据文件的压测工具。