MQTT Broker技术选型

2020-10-13  本文已影响0人  centychen

技术需求

MQTT Broker对比

对比项 EMQ RabbitMQ Mosquitto ** ActiveMQ 5**
开源机构 杭州映云科技有限公司 Rabbitmq团队 Eclipse Apache
语言 Erlang Erlang C/C++ Java
GitHub Star 6.7k 7.6k 4k 1.8k
Last Commit 一个月内 一个月内 一个月内 一个月内
Closed issue 2191 1094 1103 507
文档丰富程度 优秀 良好 一般 良好
管理界面 提供,功能全面 提供,功能较全面
支持MQTT版本 3.1/3.1.1/5.0 3.1.1 3.1/3.1.1/5.0 3.1
服务质量 QoS0/QoS1/QoS2 QoS0/QoS1(QoS2只支持Publish) QoS0/QoS1/QoS2 QoS0/QoS1/QoS2
遗嘱(遗愿)消息 支持 支持 支持
消息持久化 支持(多种方式,部分商业化) 支持(磁盘文件) 支持(磁盘文件) 支持
客户端认证 支持 支持 支持 支持
发布订阅ACL 支持 支持 支持 支持
规则引擎 支持(多种方式,部分商业化) 不支持 不支持 不支持
TCP 支持 支持 支持 支持
TCP/SSL 支持 支持 支持 支持
Websocket 支持 支持(插件) 支持 不支持
Websocket/SSL 支持 支持(插件) 支持 不支持
集群 支持 支持 支持 支持

压力测试

测试场景 发布速率(单个生产者) EMQ Mosquitto
10个生产者10个消费者* 100msg/sec speed:1000msg/sec
cpu:21%
speed:1000msg/sec
cpu:4%
10个生产者10个消费者* 250msg/sec speed:2500msg/sec
cpu:48%
speed:2500msg/sec
cpu:5%
100个生产者10个消费者* 1msg/sec speed:100msg/sec
cpu:4%
speed:100msg/sec
cpu:2%
1000个生产者10个消费者* 1msg/sec speed:1000msg/sec
cpu:27%
speed:1000msg/sec
cpu:6%
10000个生产者10个消费者* 1msg/sec speed:10000msg/sec
cpu:83%
speed:6300msg/sec
cpu:30%
15000个生产者10个消费者* 1msg/sec speed:13552msg/sec
cpu:96%
speed:4170msg/sec
cpu:31%
20000个生产者10个消费者* 1msg/sec speed:0msg/sec
cpu:99%
speed:2190msg/sec
cpu:32%
30000个生产者10个消费者* 1msg/min
(500msg/sec)
speed:500msg/sec
cpu:24%
speed:500msg/sec
cpu:25%
30000个生产者10个消费者* 2msg/min
(1000msg/sec)
speed:1000msg/sec
cpu:29%
speed:1000msg/sec
cpu:26%
30000个生产者10个消费者* 10msg/min
(5000msg/sec)
speed:5000msg/sec
cpu:70%
speed:4900msg/sec
cpu:28%
# 消费者
./emqtt_bench sub -t '$share/group/t' -h 172.18.32.12  -p 1883 -c 10 -q 1 -V 3

# 生产者
./emqtt_bench pub -t t -h 172.18.32.12  -p 1883 -s 1024 -c 10 -I 1000 -q 1 -V 3

# -t 订阅Topic
# -h 主机
# -p 端口号
# -c 客户端
# -q QoS
# -V MQTT版本
# -s 数据包大小

参考资料

上一篇下一篇

猜你喜欢

热点阅读