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

熱點內容
scratch怎麼編程 瀏覽:592
手機美圖秀秀圖片壓縮 瀏覽:194
userid加密字元串設置 瀏覽:695
如何解析寶塔伺服器域名 瀏覽:645
android日誌串口 瀏覽:327
app和app如何轉化 瀏覽:729
java實現文件的拷貝 瀏覽:9
如何把appstore移動到桌面 瀏覽:906
租用伺服器延遲有什麼解決方案 瀏覽:52
2004cad命令快捷 瀏覽:244
手動歸檔命令 瀏覽:899
文件夾信息跑到上面怎麼恢復 瀏覽:629
plc的基本指令及編程 瀏覽:435
為什麼用壓縮空氣洗車 瀏覽:463
php鍵值重復 瀏覽:53
mbp運行python 瀏覽:49
郵箱伺服器源碼 瀏覽:437
長沙java程序員待遇 瀏覽:397
怎麼車載U盤分文件夾播放 瀏覽:340
華為健康使用命令 瀏覽:351