中文字幕第二一区_久久久久在线视频_精品国产自在现线看久久_亚洲精品一区二区三区电影网

產品分類

當前位置: 首頁 > 新聞熱點

EMQ幫助開發者快速了解 MQTT 協議及其相關特性

發布日期:2022-07-14 點擊率:51

MQTT 協議是什么?

隨著 5G 時代的來臨,萬物互聯的偉大構想正在成為現實。聯網的 物聯網設備 在 2018 年已經達到了 70 億,在未來兩年,僅智能水電氣表就將超過10億。

海量的設備接入和設備管理對網絡帶寬、通信協議以及平臺服務架構都帶來了很大挑戰。對于 物聯網協議 來說,必須針對性地解決物聯網設備通信的幾個關鍵問題:其網絡環境復雜而不可靠、其內存和閃存容量小、其處理器能力有限。

MQTT 協議 是基于發布/訂閱模式的物聯網通信協議,憑借簡單易實現、支持 QoS、報文小等特點,占據了物聯網協議的半壁江山:

MQTT 協議的誕生

MQTT was created by Andy Stanford-Clark of IBM, and Arlen Nipper (then of Arcom Systems, later CTO of Eurotech).

據 Arlen Nipper 在一 IBM Podcast 上的自述,MQTT 原名是 MQ TT, 注意 MQ 與 TT之間的空格,其全稱為: MQ Telemetry Transport,是九十年代早期,他在參與 Conoco Phillips 公司的一個原油管道數據采集監控系統(pipeline SCADA system)時,開發的一個實時數據傳輸協議。它的目的在于讓傳感器通過帶寬有限的 VSAT ,與 IBM 的 MQ Integrator 通信。由于 Nipper 是遙感和數據采集監控專業出身,所以按業內慣例給了個 MQ TT 的名字。

MQTT 協議設計原則

按照 Nipper 的介紹,MQTT 必須簡單容易實現,必須支持 QoS(設備網絡環境復雜),必須輕量且省帶寬(因為那時候帶寬很貴),必須數據無關(不關心 Payload 數據格式),必須有持續地會話感知能力(時刻知道設備是否在線)。下面將介紹 MQTT (3.1.1 版本) 的幾個核心特色,分別對應了這幾個設計原則的實現。

靈活的發布訂閱和主題設計

發布訂閱模式是傳統 Client/Server 模式的一種解耦方案。發布者通過 Broker 與消費者之間通信,Broker 的作用是將收到的消息通過某種過濾規則,正確地發送給消費者。發布/訂閱模式 相對于 客戶端/服務器模式 的好處在于:

發布者和消費者之間不必預先知道對方的存在,比如不需要預先溝通對方的 IP Address 和 Port

發布者和消費者之間不必同時運行。因為 Broker 是一直運行的。

在 MQTT 協議里,上面提到的 過濾規則 是 Topic。比如:所有發布到 news 這個 Topic 的消息,都會被 Broker 轉發給已經訂閱了 news 的訂閱者:

上圖中訂閱者預先訂閱了 news,然后發布者向 Broker 發布了一條消息 "some msg" 并指定發布到 news 主題,Broker 通過 Topic 匹配,決定將這條消息轉發給訂閱者。

MQTT 的 Topic 有層級結構,并且支持通配符 + 和 #:

+ 是匹配單層的通配符。比如news/+ 可以匹配news/sports,news/+/basketball 可匹配到news/sports/basketball。

# 是一到多層的通配符。比如news/# 可以匹配news、news/sports、news/sports/basketball 以及news/sports/basketball/x 等等。

MQTT 的主題是不要預先創建的,發布者發送消息到某個主題、或者訂閱者訂閱某個主題的時候,Broker 就會自動創建這個主題。

帶寬消耗最小化

MQTT 協議將協議本身占用的額外消耗最小化,消息頭部最小只需要占用 2 個字節。

MQTT 的消息格式分三部分:

固定長度頭部,2 個字節,所有消息類型里都有

可變長度頭部,只有某些消息類型里有

Payload,只有某些消息類型里有

MQTT 的主要消息類型有:

CONNECT / CONNACK

PUBLISH / PUBACK

SUBSCRIBE / SUBACK

UNSUBSCRIBE / UNSUBACK

PINGREQ / PINGRESP

DISCONNECT

其中 PINGREQ / PINGRESP 和 DISCONNECT 報文是不需要可變頭部的,也沒有 Payload,也就是說它們的報文大小僅僅消耗 2 個字節。

在 CONNECT 報文的可變長度頭部里,有個 Protocol Version 的字段。為了節省空間,只有一個字節。所以版本號不是按照字符串 "3.1.1" 存放的,而是使用數字 4 來表示 3.1.1 版本。

三個可選的 QoS 等級

為適應設備不同的網絡環境,MQTT 設計了 3 個 QoS 等級,0, 1, 2:

At most once(0)

At least once(1)

Exactly once(2)

QoS 0 是一種 "fire and forget" 的消息發送模式:Sender (可能是 Publisher 或者 Broker) 發送一條消息之后,就不再關心它有沒有發送到對方,也不設置任何重發機制。

QoS 1 包含了簡單的重發機制,Sender 發送消息之后等待接收者的 ACK,如果沒收到 ACK 則重新發送消息。這種模式能保證消息至少能到達一次,但無法保證消息重復。

QoS 2 設計了略微復雜的重發和重復消息發現機制,保證消息到達對方并且嚴格只到達一次。

會話保持

MQTT 沒有假設設備或 Broker 使用了 TCP 的?;顧C制,而是設計了協議層的?;顧C制:在 CONNECT 報文里可設置 Keepalive 字段,來設置?;钚奶?PINGREQ/PINGRESP 的發送時間間隔。當長時間無法收到設備的 PINGREQ 的時候,Broker 就會認為設備已經下線。

總的來說,Keepalive 有兩個作用:

發現對端死亡或者網絡中斷

在長時間無消息交互的情況下,保持連接不被網絡設備斷開

對于那些想要在重新上線后,重新收到離線期間錯過的消息的設備,MQTT 設計了持久化連接:在 CONNECT 報文里可設置 CleanSession 字段為 False,則 Broker 會為終端存儲:

設備所有的訂閱

還未被設備確認的 QoS1 和 QoS 消息

設備離線時錯過的消息

在線狀態感知

MQTT 設計了遺愿(Last Will) 消息,讓 Broker 在發現設備異常下線的情況下,幫助設備發布一條遺愿消息到指定的主題。

實際上在某些 MQTT 服務器的實現里 (比如 EMQX),設備上線或下線的時候 Broker 會通過某些系統主題發布設備狀態更新,更符合實際應用場景。

開源 MQTT 服務器如何選擇

到目前為止,比較流行的開源 MQTT 服務器有幾個:

Eclipse Mosquitto使用 C 語言實現的 MQTT 服務器。Eclipse 組織還還包含了大量的 MQTT 客戶端項目:https://www.eclipse.org/paho/#

EMQX使用 Erlang 語言開發的 MQTT 服務器,內置強大的規則引擎,支持許多其他 IoT 協議比如 MQTT-SN、 CoAP、LwM2M 等。

Mosca使用 Node.JS 開發的 MQTT 服務器,簡單易用。

VerneMQ同樣使用 Erlang 開發的 MQTT 服務器.

從支持 MQTT 5.0、穩定性、擴展性、集群能力等方面考慮,EMQX 的表現應該是最好的:

使用 Erlang OTP 開發,容錯能力好 (電信領域久經考驗的語言,曾經做出過 99.9999999% 可用性的交換機設備)

官方有大量的擴展插件可供擴展。有很多認證插件,數據存儲(backend)插件可供選擇??芍С指鞣N關系型數據庫,NoSQL 數據庫,以及常見消息隊列如 Kafka,RabbitMQ,Pulsar 等

支持集群,支持節點水平擴展

單節點支持 2000K 并發連接

支持規則引擎和編解碼

MQTT 協議快速體驗

MQTT 在線服務器

EMQX MQTT 物聯網云服務 提供了一個在線的公共 MQTT 5.0 服務器,不需要任何安裝您就可以快速開始 MQTT 協議的學習、測試或原型制作。

該 MQTT 服務器的詳細接入信息請見 EMQ 官網頁面:免費的在線 MQTT 服務器。

MQTT 在線客戶端

EMQ 也提供了支持瀏覽器訪問的 MQTT 在線客戶端工具,該工具支持通過普通或者加密的 WebSocket 端口連接至 MQTT 服務器,同時也支持緩存連接方便下次訪問使用。

原創文章,作者:EMQ,如若轉載,請注明出處

       原文標題 : EMQ幫助開發者快速了解 MQTT 協議及其相關特性

下一篇: 光伏逆變器“核心器件

上一篇: 最短時間破萬,第一個

中文字幕第二一区_久久久久在线视频_精品国产自在现线看久久_亚洲精品一区二区三区电影网

      久久国产主播| 伊人精品在线| 一二三区精品| 欧美日韩高清区| 一区二区欧美视频| 国产精品推荐精品| 美腿丝袜亚洲色图| 亚洲一级黄色片| 在线精品视频在线观看高清| 欧美高清视频| 欧美在线看片a免费观看| 亚洲黑丝在线| 国产在线播放一区二区三区| 欧美国产日产韩国视频| 久久激情综合网| 亚洲图片欧美日产| 亚洲经典三级| 一区二区视频免费在线观看 | 99人久久精品视频最新地址| 国产精品美女| 欧美日韩国产不卡在线看| 久久久久久黄| 午夜一级在线看亚洲| 亚洲精品国产精品乱码不99按摩| 国产精品自拍在线| 国产精品白丝av嫩草影院| 卡一卡二国产精品| 久久手机精品视频| 欧美日韩在线视频一区二区| 亚洲青色在线| 国产精品高清在线| 国产精品美女久久久浪潮软件| 欧美日韩播放| 国产精品羞羞答答| 国产精品美女主播在线观看纯欲| 欧美激情国产精品| 欧美日韩免费高清| 国产精品美女一区二区在线观看| 国产精品日韩在线播放| 国产亚洲一区二区三区在线播放 | 国产日韩精品一区| 韩国精品一区二区三区| 亚洲欧洲精品天堂一级| 一二三区精品福利视频| 亚洲一区在线免费观看| 久久成人一区二区| 精品1区2区3区4区| 国产一区二区三区不卡在线观看| 好吊色欧美一区二区三区四区| 亚洲国产精品久久久| 亚洲精选中文字幕| 久久久国产成人精品| 欧美日韩一区精品| 亚洲电影免费| 欧美亚洲视频在线观看| 欧美激情一区二区三区高清视频 | 国产麻豆视频精品| 亚洲最新视频在线播放| 免费成人在线观看视频| 国产亚洲成av人片在线观看桃 | 亚洲一区二区三区在线视频| 久久久久久久高潮| 国产原创一区二区| 性色av一区二区三区红粉影视| 欧美激情第三页| 在线精品视频一区二区三四| 亚洲一区在线观看免费观看电影高清| 欧美久久影院| 亚洲国产精品电影在线观看| 欧美一区二区三区在线播放| 欧美日韩一区二区三区高清| 亚洲精品国偷自产在线99热| 亚洲欧美综合网| 国产欧美日韩综合精品二区| aa级大片欧美| 国产精品视频第一区| 亚洲女性喷水在线观看一区| 国产精品美女久久久久久免费| 亚洲午夜精品在线| 狠狠久久亚洲欧美| 国产精品亚洲人在线观看| 国产精品激情电影| 欧美在线播放高清精品| 一区二区在线观看视频在线观看| 久久精品国产亚洲5555| 国外成人免费视频| 欧美日本一区二区高清播放视频| 99精品99| 国精品一区二区三区| 欧美黑人国产人伦爽爽爽| 亚洲精品字幕| 国产一区二区毛片| 可以看av的网站久久看| 99视频精品全国免费| 欧美片在线观看| 亚洲一区二区三区午夜| 亚洲国产视频一区| 韩国v欧美v日本v亚洲v| 欧美日韩四区| 免费精品99久久国产综合精品| 亚洲一区二区动漫| 亚洲黄一区二区| 黄色亚洲大片免费在线观看| 欧美日韩精品一二三区| 久久久精品视频成人| 亚洲深爱激情| 一区二区高清视频在线观看| 樱桃国产成人精品视频| 国产欧美午夜| 国产目拍亚洲精品99久久精品| 欧美连裤袜在线视频| 欧美精品 国产精品| 免费av成人在线| 久久综合九色综合久99| 久久精品理论片| 翔田千里一区二区| 久久久最新网址| 免费亚洲婷婷| 欧美日韩三级视频| 国产精品免费久久久久久| 国产精品久久国产精品99gif| 国产精品成人久久久久| 欧美性大战久久久久| 国产欧美一区二区三区在线看蜜臀 | 欧美天堂亚洲电影院在线观看| 欧美国产精品专区| 国产精品99一区二区| 国产美女精品免费电影| 国产欧美日韩三级| 91久久国产综合久久91精品网站| 亚洲三级视频在线观看| 一区二区三区精品视频| 亚洲视频在线二区| 一区二区三区日韩在线观看| 日韩午夜电影av| 亚洲精品1区2区| 一区二区三区日韩| 久久久久久久欧美精品| 欧美日本一区| 亚洲第一久久影院| 欧美区二区三区| 国产精品初高中精品久久| 亚洲国产美女久久久久| 欧美一级二区| 国产精品www.| 一区二区欧美日韩| 欧美理论电影在线播放| 今天的高清视频免费播放成人| 亚洲深夜福利在线| 欧美日韩国产影院| 久久av资源网站| 欧美性视频网站| 亚洲专区一区| 国产精品久久99| 午夜精品久久久久久99热软件| 欧美揉bbbbb揉bbbbb| 亚洲日韩视频| 欧美人与性动交α欧美精品济南到| 亚洲国产欧美在线| 欧美日韩美女在线观看| 亚洲在线电影| 韩国一区二区三区在线观看| 欧美一级视频精品观看| 国产一本一道久久香蕉| 久久精品视频在线观看| 亚洲经典在线| 国产精品毛片a∨一区二区三区|国 | 伊人久久大香线蕉综合热线 | 欧美日韩天堂| 性欧美1819性猛交| 亚洲国产精品一区二区三区| 蜜桃视频一区| 欧美在线首页| 9人人澡人人爽人人精品| 国产日韩精品一区二区浪潮av| 欧美在线观看网站| 日韩视频一区二区在线观看 | 国产综合久久久久久| 欧美久久久久久蜜桃| 久久国产综合精品| 亚洲影院在线| 亚洲精品一区二| 狠狠爱成人网| 国产一区在线观看视频| 欧美三级免费| 欧美日韩成人| 欧美成人激情视频| 久久国产一区| 久久成人国产| 久久久久综合网| 久久久精品国产免大香伊| 亚洲欧美日韩一区二区在线| 日韩午夜免费视频| 夜夜爽www精品| 一本色道综合亚洲| 一级成人国产| 午夜精品999| 久久激情综合网| 欧美成人免费全部观看天天性色| 久久久伊人欧美|