導航:首頁 > 源碼編譯 > 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共享訂閱源碼相關的資料

熱點內容
王一博參加密室逃脫圖片 瀏覽:952
郵件登錄伺服器地址跟域名怎麼填 瀏覽:676
我的第一本養貓書pdf 瀏覽:335
測畝儀測量演算法原理 瀏覽:381
音偶app怎麼下載 瀏覽:532
如何執行java文件 瀏覽:545
hive操作命令 瀏覽:226
程序員澳洲 瀏覽:153
聚力體育平台app怎麼樣 瀏覽:739
蘋果電腦文件夾窗口怎麼放大縮小 瀏覽:397
演算法簡單入門教材 瀏覽:984
雲伺服器密碼登不上 瀏覽:747
獲得命令方塊的命令方塊 瀏覽:466
無驅加密狗看不到信息 瀏覽:229
python使用技能對照表 瀏覽:870
php字元串轉換大小寫 瀏覽:774
手機透明的app怎麼刪除 瀏覽:941
音符可以加密嗎 瀏覽:542
單片機怎麼串列通訊 瀏覽:517
emq共享訂閱源碼 瀏覽:206