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

熱點內容
androidthings是什麼 瀏覽:889
文件夾變應用程序怎麼打開 瀏覽:222
蘋果7震動加密 瀏覽:847
java實現事件 瀏覽:653
java許可權菜單 瀏覽:376
pythonlist分配空間 瀏覽:563
數據挖掘中層次聚類演算法實驗 瀏覽:173
開發完app如何配置伺服器 瀏覽:817
汽車壓縮機工作但是壓力不變 瀏覽:84
開發編譯軟體好嗎 瀏覽:899
微信朋友圈發幾兆的圖片不會被壓縮 瀏覽:289
單片機怎麼讓燈循環流水 瀏覽:400
聯想伺服器是什麼晶元 瀏覽:710
山東西門子plc編程軟體 瀏覽:399
貴陽買菜app叫什麼 瀏覽:32
單片機直接驅動二極體優缺點 瀏覽:458
程序員和軟體測試 瀏覽:420
程序員改造品牌 瀏覽:278
動態溫度計編程 瀏覽:75
有什麼app可以鬧鍾語音播報的 瀏覽:285