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

热点内容
怀旧服务器怎么关大脚频道 浏览:468
湿插花泥解压视频 浏览:332
dr命令 浏览:951
四级pdf 浏览:630
王一博参加密室逃脱图片 浏览:952
邮件登录服务器地址跟域名怎么填 浏览:676
我的第一本养猫书pdf 浏览:335
测亩仪测量算法原理 浏览:381
音偶app怎么下载 浏览:532
如何执行java文件 浏览:545
hive操作命令 浏览:226
程序员澳洲 浏览:153
聚力体育平台app怎么样 浏览:739
苹果电脑文件夹窗口怎么放大缩小 浏览:397
算法简单入门教材 浏览:984
云服务器密码登不上 浏览:747
获得命令方块的命令方块 浏览:466
无驱加密狗看不到信息 浏览:230
python使用技能对照表 浏览:870
php字符串转换大小写 浏览:774