iot-mqttJava 和 Netty 實現(xiàn)的 MQTT 代理
iot-mqtt,由 java 和 netty 實現(xiàn)的 MQTT 代理,支持持久性。
本項目完全借鑒 jmqtt 項目 https://github.com/Cicizz/jmqtt
目前只是對部分代碼進(jìn)行了梳理重構(gòu),去除了集群部分, 修正了一些 bug,并加入簡單的 $SYS/實現(xiàn),后期會加入原創(chuàng)的集群的實現(xiàn)。
現(xiàn)在已對 mqtt3.1.1 協(xié)議有完整的實現(xiàn)。 本項目默認(rèn)采用 rocksdb 做消息的持久化,所以即使項目故障推出,也不會丟失數(shù)據(jù),恢復(fù)項目后可以自動重連發(fā)送。 運(yùn)行方法:
- maven build 出相應(yīng) jar 包,放入release/bin。
- cd release/bin 目錄 執(zhí)行相應(yīng)方法 ,相關(guān)配置在 config 目錄下。
- server 啟動 broker,默認(rèn)1883 端口,用戶名 admin 密碼 123456。
- subscribe_test啟動接受服務(wù),默認(rèn)監(jiān)聽/QOS0,/QOS1,/QOS2,三個主題。
- send_test啟動發(fā)送服務(wù),向/QOS0,/QOS1,/QOS2三個主題,并發(fā)1000個線程發(fā)送消息,共200萬個消息。
- subscribe_sys啟動監(jiān)控服務(wù),默認(rèn)監(jiān)聽$SYS/主題.并顯示當(dāng)前所有client信息,包含每個client 接受消息數(shù),發(fā)送消息數(shù),關(guān)注的主題,等信息。
評論
圖片
表情
