MQTT 實踐總結

QMQX 文檔:https://www.emqx.io/docs/zh/latest/

MQTT 入門:https://www.emqx.com/zh/mqtt-guide

通過案例理解 MQTT 主題與通配符:https://www.emqx.com/zh/blog/advanced-features-of-mqtt-topics
① 爲了避免歧義且易於理解,通常不建議主題以 / 開頭或結尾,例如 /chat 或 chat/
② 不同於消息隊列中的主題(比如 Kafka 和 Pulsar),MQTT 主題不需要提前創建。MQTT 客戶端在訂閱或發佈時即自動的創建了主題,開發者無需再關心主題的創建,並且也不需要手動刪除主題。
③ MQTT 主題通配符包含單層通配符 + 及多層通配符 #,主要用於客戶端一次訂閱多個主題。(注意:通配符只能用於訂閱,不能用於發佈。)
④ 井字符號(“#” U+0023)是用於匹配主題中任意層級的通配符。多層通配符表示它的父級和任意數量的子層級,在使用多層通配符時,它必須佔據整個層級並且必須是主題的最後一個字符
⑤ 以 $SYS/ 開頭的主題爲系統主題,系統主題主要用於獲取 MQTT 服務器自身運行狀態、消息統計、客戶端上下線事件等數據。
⑥ EMQX 還支持客戶端上下線事件、收發流量、消息收發、系統監控等豐富的系統主題,用戶可通過訂閱 $SYS/# 主題獲取所有系統主題消息。詳細請見:EMQX 系統主題文檔。
⑦ 共享訂閱是 MQTT 5.0 引入的新特性,用於在多個訂閱者之間實現訂閱的負載均衡,MQTT 5.0 規定的共享訂閱主題以 $share 開頭。

myhome/bedroom/temperature
myhome/bedroom/humidity
myhome/bedroom/airquality
myhome/livingroom/temperature
myhome/livingroom/humidity
myhome/livingroom/airquality
myhome/kitchen/temperature
myhome/kitchen/humidity
myhome/kitchen/airquality
訂閱 myhome/bedroom/+ 主題獲取臥室的溫度、溼度及空氣質量數據,
訂閱 myhome/+/temperature 主題獲取三個房間的溫度數據,訂閱 myhome/# 獲取所有的數據。

與rabbitmq的匹配符類似 例如 ”abc.#” 匹 配 ”abc.def.ghi” , ”abc.” 只 匹配”abc.def”。


QoS(Quality of Service)即服務質量
QoS 0:消息最多傳送一次。如果當前客戶端不可用,它將丟失這條消息。
QoS 1:消息至少傳送一次。
QoS 2:消息只傳送一次。


遺囑消息,保留消息

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章