美文网首页
MQTT Broker技术选型

MQTT Broker技术选型

作者: centychen | 来源:发表于2020-10-13 14:33 被阅读0次

    技术需求

    • 完整的MQTT协议支持;
    • 支持设备认证、发布订阅ACL;
    • 消息能够持久化存储到数据库;
    • 支持集群部署,支持10w+设备连接;
    • 最好能够提供规则引擎;
    • 文档丰富,方便使用和解决问题。
    • 社区活跃,Issue有人关闭;

    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 支持 支持(插件) 支持 不支持
    集群 支持 支持 支持 支持

    压力测试

    • Client
      • 数量:2台,1台作为生产者,1台作为消费者
      • 配置:2核CPU*4GB内存
    • Broker
      • 数量:1台
      • 配置:4核CPU*8GB内存
    • 测试结果
    测试场景 发布速率(单个生产者) 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 数据包大小
    

    参考资料

    相关文章

      网友评论

          本文标题:MQTT Broker技术选型

          本文链接:https://www.haomeiwen.com/subject/coevpktx.html