导航:首页 > 源码编译 > 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共享订阅源码相关的资料

热点内容
命令的真值 浏览:301
趋势主图的源码 浏览:299
欢乐走app是什么 浏览:670
优盘加密有必要吗 浏览:341
可爱的程序员姜梓童结局 浏览:111
自动加密视频 浏览:233
程序员技术瓶颈 浏览:213
linux打开终端命令窗口 浏览:333
安卓附近的人打招呼怎么退出来 浏览:898
甘肃云主机云服务器 浏览:159
linux超过2t 浏览:269
子午线指标源码 浏览:238
浮点数乘幂运算法 浏览:318
pdf爬虫 浏览:557
php按钮点击事件 浏览:934
河南服务器机房售后服务云主机 浏览:184
android仿联系人 浏览:368
什么app软件可以学音标 浏览:669
郭天祥十天学会单片机优酷 浏览:330
什么app儿童免费 浏览:582