导航:首页 > 源码编译 > emq共享订阅源码

emq共享订阅源码

发布时间:2024-12-19 22:18:49

A. MQTT Broker 选型

MQTT Broker选型


在构建分布式系统时,选择合适的MQTT Broker至关重要,它负责接收发布者发布的消息并将其分发给不同的订阅者。市面上有许多MQTT Broker可供选择,以下是一些常用选项的对比与分析。


Mosquitto


Mosquitto是由Eclipse出品的开源MQTT Broker,基于C/C++语言编写,当前版本为1.5.8。其特点包括支持MQTT 3.1/3.1.1协议,但性能上存在一些限制,如内存优化、多线程的锁机制等。它适合运行在低功耗设备上,如嵌入式传感器、手机和微处理器,但不适用于大规模云服务。官方文档显示其理论支持约10万连接,实际使用中还需根据具体情况进行评估。


EMQ (emqttd)


EMQ,一款国人开发的开源MQTT Broker,目前版本为2.0和3.0,2.0版本支持本地共享订阅,3.0版本新增集群共享订阅功能。EMQ具有完整QoS支持、单节点100万连接能力、分布式集群支持、多种验证插件(如LDAP、MySQL、PostgreSQL等)以及API、Web监控界面等特性。官方宣称支持MQTT 3.1、3.1.1和5.0版本,并在性能上做了优化。然而,开源版本不支持服务器内部消息持久化,这是其一个显着限制。


HiveMQ


HiveMQ是一款企业级MQTT Broker,使用Java编写,功能丰富,支持MQTT 3.1、3.1.1和5.0版本,完整QoS支持,分布式集群,持久化支持,流量控制,IPv6支持等。其唯一限制在于高昂的费用,没有公开源码供参考。集群基于Jgroups,数据同步通过自定义一致性哈希和VectorClock实现。多线程和并发控制使用Google的guava库,代码质量高。


MqttWk


MqttWk是一个基于nutzboot、netty、redis和kafka实现的MQTT服务开源Broker,代码简洁易懂。它支持MQTT和Websocket连接方式,集群功能和消息分发重试,但存在一些限制,如消息队列非队列结构、消息分发重试机制较差、主题限制等。它是上生产的项目,经历过2万设备连接的考验。


Jmqtt


Jmqtt是一个基于Java的开源MQTT Broker,对现有开源Broker进行了优化,特别是在CONNECT处理和Session过期管理方面。支持MQTT和Websocket连接方式,使用RocksDB进行本地存储,但不支持集群和SSL。


Moquette


Moquette是一个功能齐全的Java编写的开源MQTT Broker,提供完整的QoS服务和认证方式,支持多种持久化存储。然而,0.10版本中存在内存泄漏问题,官方修复后发布为irubant/moquette。其集群功能仅使用Hazelcast作为消息总线,不支持共享订阅。


综上所述,选择合适的MQTT Broker需考虑应用的具体需求,包括连接数量、协议版本、性能要求、集群支持、消息持久化、安全认证等因素。在选择时,应充分评估各Broker的特性和限制,以满足实际应用场景的需要。

阅读全文

与emq共享订阅源码相关的资料

热点内容
linuxshellread 浏览:225
st单片机命名 浏览:860
华为路由器弹出提示命令 浏览:884
服务器地址失效 浏览:639
pdf解码 浏览:918
手机号码系统源码 浏览:625
如何选择云服务器系统 浏览:741
探探视频保存在哪个文件夹 浏览:844
crm免费系统源码 浏览:623
三大本pdf 浏览:606
服务器如何远程ftp连接不了 浏览:292
上海死亡程序员 浏览:185
专业app定制开发哪里有 浏览:256
centos给文件权限命令 浏览:304
小娃娃的玩具从哪里买的app 浏览:375
mc国际版怎么免费制作服务器 浏览:969
供应商管理pdf 浏览:807
android状态栏大小 浏览:631
手机怎么开我的世界服务器地址 浏览:186
儿童编程教育排名 浏览:378