前言
最近百度新开源了一款MQTT Broker,带着期待,于是我们准备了了一次性能的基准测试,主要为了测评各MQTT Broker之间的性能差异。
产品 | 说明 | 运行环境 |
---|---|---|
BifroMQ | 百度开源的一款MQTT产品 | JDK17,Maven 3.5+ |
EMQX | 开源&商业化MQTT的鼻祖 | Earlng |
FluxMQ | 号称性能领先99%的一款商业化MQTT产品 | JDK8、JDK11、JDK17 |
TBMQ(暂不压测) | Thingsboard开源的一款MQTT产品 | JDK17,Maven 3.5+ |
功能对比
功能 | BifroMQ | EMQX | FluxMQ | TBMQ |
---|---|---|---|---|
发布订阅 | ✔️ | ✔️ | ✔️ | ✔️ |
共享订阅 | ✔️ | ✔️ | ✔️ | ✔️ |
数据持久化(运行) | ✔️ | ✔️ | ✔️ | ✔️ |
Session消息 | ✔️ | ✔️ | ✔️ | ✖️ |
保留消息 | ✔️ | ✔️ | ✔️ | ✔️ |
动态认证 | ✖️ | ✔️ | ✔️ | ✖️ |
数据桥接 | ✖️ | ✔️ | ✔️ | ✖️ |
多协议 | ✖️ | ✔️ | ✔️ | ✖️ |
延迟消息 | ✖️ | ✔️ | ✔️ | ✖️ |
ACL控制 | ✖️ | ✔️ | ✔️ | ✖️ |
压测准备
压测工具使用emqtt-bench压测工具
https://github.com/emqx/emqtt-bench
压测指标:
类型_连接数_订阅数_QOS_频率(每秒)_数据包大小_数据包总数
多Topic
发布脚本:
./emqtt_bench pub -t %i -h 172.17.6.75 -p 1887 -u smqtt -P smqtt -s 1024 -q 0 -c 5000 -I 1000