問答中心

          Answer Center

          下載中心

          視頻中心

          常見問題

          售后服務

          物聯網協議介紹-MQTT 協議的概念與應用

          時間:2022-11-22 11:43:54 

          點擊:3423 

          關鍵詞:mqtt,物聯網協議 

          問題
          MQTT 協議是什么?MQTT有什么特性?

          回答
          一、MQTT 協議概念
           
          MQTT 協議的全稱是 Message Queuing Telemetry Transport,翻譯為消息隊列傳輸探測,它是 ISO 標準下的一種基于發布 - 訂閱模式的消息協議,它是基于 TCP/IP 協議簇的,它是為了改善網絡設備硬件的性能和網絡的性能來設計的。MQTT 一般多用于 IoT 即物聯網上,廣泛應用于工業級別的應用場景,比如汽車、制造、石油、天然氣等。
           
          在了解了 MQTT 的概念和應用場景后,我們下來就來走進 MQTT 的學習中了,先來看一下 MQTT 有哪些概念。
           
          二、MQTT 基礎
           
          上面我們解釋了 MQTT 協議的基本概念,MQTT 協議總結一點就是一種輕量級的二進制協議,MQTT 協議與 HTTP 相比具有一個明顯的優勢:數據包開銷較小,數據包開銷小就意味著更容易進行網絡傳輸。還有一個優勢就是 MQTT 在客戶端容易實現,而且具有易用性,非常適合當今資源有限的設備。
           
          你可能對這些概念有些諱莫如深,為什么具有 xxx 這種特性呢?這就需要從 MQTT 的設計說起了。
           
          MQTT 協議由 Andy Stanford-Clark (IBM) 和 Arlen Nipper(Arcom,現為 Cirrus Link)于 1999 年發明。他們需要一種通過衛星連接石油管道的協議,以最大限度地減少電池損耗和帶寬。所以他們為這個協議規定了幾種要求:
           
          1、這個協議必須易于實現;
           
          2、這個協議中的數據必須易于傳輸,消耗成本小;
           
          3、這個協議必須提供服務質量管理;
           
          4、這個協議必須支持連續的會話控制;
           
          5、假設數據不可知,不強求傳輸數據的類型與格式,保持靈活性。
           
          這些設計也是 MQTT 的精髓所在,MQTT 經過不斷的發展,已經成為了物聯網 IoT 所必備的一種消息探測協議,官方強烈推薦使用的版本是 MQTT 5。
           
          三、發布 - 訂閱模式
           
          發布 - 訂閱模式,我相信接觸消息中間件架構的同學都聽過,這是一種傳統的客戶端 - 服務器架構的替代方案,因為一般傳統的客戶端-服務器是客戶端能夠直接和服務器進行通信。
           
          但是發布 - 訂閱模式 pub/sub就不一樣了,發布訂閱模式會將發送消息的發布者 publisher與接收消息的訂閱者 subscribers進行分離,publisher 與 subscribers 并不會直接通信,他們甚至都不清楚對方是否存在,他們之間的交流由第三方組件 broker 代理。
           
          pub/sub 最重要的方面是 publisher 與 subscriber 的解藕,這種耦合度有下面三個維度:
           
          1、空間解耦
           
          publisher 與 subscriber 并不知道對方的存在,例如不會有 IP 地址和端口的交互,也更不會有消息的交互。
           
          2、時間解藕
           
          publisher 與 subscriber 并不一定需要同時運行。
           
          3、同步 Synchronization 解藕
           
          兩個組件的操作比如 publish 和 subscribe 都不會在發布或者接收過程中產生中斷。
           
          總之,發布/訂閱模式消除了傳統客戶-服務器之間的直接通信,把通信這個操作交給了 broker 進行代理,并在空間、時間、同步三個維度上進行了解藕。
           
          四、可拓展性
           
          pub/sub 比傳統的客戶端-服務器模式有了更好的拓展,這是由于 broker 的高度并行化,并且是基于事件驅動的模式。可拓展性還體現在消息的緩存和消息的智能路由,還可以通過集群代理來實現數百萬的連接,使用負載均衡器將負載分配到更多的單個服務器上,這就是 MQTT 的深度應用了。
           
          你可能不明白什么是事件驅動,我在這里解釋下事件驅動的概念。
           
          事件驅動是一種編程范式,編程范式是軟件工程中的概念,它指的是一種編程方法或者說程序設計方式,比如說面向對象編程和面向過程編程就是一種編程范式,事件驅動中的程序流程會由諸如用戶操作(點擊鼠標、鍵盤)、傳感器輸出或者從其他程序或傳遞的消息事件決定。事件驅動編程是圖形用戶界面和其他應用程序比如 Web 中使用的主要范式,這些應用程序能夠響應用戶輸入執行某些操作為中心,這同時也適用于驅動程序的編程。
           
          五、消息過濾
           
          在 pub/sub 的架構模式中,broker 扮演著至關重要的作用,其中非常重要的一點就是 broker 能夠對消息進行過濾,使每個訂閱者只接收自己感興趣的消息。broker 有幾個可以過濾的選項:
           
          1、基于主題的過濾
           
          MQTT 是基于 subject 的消息過濾的,每條消息都會有一個 topic ,接收客戶端會向 borker 訂閱感興趣的 topic,訂閱后,broker 就會確保客戶端收到發布到 topic 中的消息。
           
          2、基于內容的過濾
           
          在基于內容的過濾中,broker 會根據特定的內容過濾消息,接受客戶端會經過過濾他們感興趣的內容。這種方法的一個顯著的缺點就是必須事先知道消息的內容,不能加密或者輕易修改。
           
          3、基于類型的過濾
           
          在使用面向對象的語言時,基于消息(事件)的類型過濾是一種比較常見的過濾方式。
           
          為了發布/訂閱系統的挑戰,MQTT 具有三個服務質量級別,你可以指定消息從客戶端傳到 broker 或者從 broker 傳到客戶端,在 topic 的訂閱中,會存在 topic 沒有 subscriber 訂閱的情況,作為 broker 必須知道如何處理這種情況。
           
          六、MQTT 與消息隊列的區別
           
          我們現在知道,MQTT 是一種消息隊列傳輸探測協議,這種協議是看似是以消息隊列為基礎,但卻與消息隊列有所差別。
           
          在傳統的消息隊列模式中,一條消息會存儲在消息隊列中等待被消費,每個傳入的消息都存儲在消息隊列中,直到它被客戶端(通常稱之為消費者)所接收,如果沒有客戶端消費消息的話,這條消息就會存在消息隊列中等待被消費。但是在消息隊列中,不會存在消息沒有客戶端消費的情況,但是在 MQTT 中,卻存在 topic 無 subscriber 訂閱的情況。
           
          在傳統的消息隊列模式中,一條消息只能被一個客戶端所消費,負載會分布在隊列的每個消費者之間;而在 MQTT 中,每個訂閱者都會收到消息,每個訂閱者有相同的負載。
           
          在傳統的消息隊列模式中,必須使用單獨的命令來顯式創建隊列,只有隊列創建后,才可以生產或者消費消息;而在 MQTT 中,topic 比較靈活,可以即時創建。

           

          免責聲明:本網站部分文章、圖片等信息來源于網絡,版權歸原作者平臺所有,僅用于學術分享,如不慎侵犯了你的權益,請聯系我們,我們將做刪除處理!


          產品系列

          工業智能網關
          物通博聯·WG系列工業智能網關是一款支持采集各種PLC,儀器儀表,水環保,電力設備,CNC等各種工業設備數據,具有協議解析,邊緣計算的高可靠性工業智能網關,是構建工業互聯網系統的核心邊緣節點。
          了解更多
          工業數采終端
          物通博聯·WD系列工業數采終端,主要實現對現場工業設備的數字量DI、DO,模擬量AI,AO的采集和控制,實現LORA本地組網和4G數據上云的功能,從而實現對現場傳感器、執行機構、指示燈等數采和控制。
          LoRa終端
          LoRa網關
          DTU
          RTU
          4G無線IO
          WIFI無線IO
          了解更多
          工業聯網終端
          物通博聯·工業聯系終端包含WR系列工業無線路由、WC系列網段隔離器和WS系列工業交換機。 支持5G/4G/WIFI/以太網等方式聯網接入,支持VPN組網,為現場設備提供低時延、高可靠、高安全的網絡接入,從而實現大規模設備組網應用。
          了解更多
          設備遠程維護系統
          物通博聯·設備遠程維護系統是一套實現對分散式設備遠程維護和運營的軟硬件系統,為工程師搭建一條通往遠端設備現場的安全數據通道,實現對現場設備(PLC)的遠程配置、遠程診斷、遠程調試和遠程升級程序。
          設備遠程配置
          設備遠程調試
          遠程上下載程序
          設備遠程維護
          設備遠程監控
          設備預防式維護
          了解更多
          工業設備數據平臺
          物通博聯·工業設備數據平臺是一款高并發的工業設備遠程管理和工業設備數據可視化的云平臺,廣泛應用于智能工廠數采中臺、遠程設備運營管理平臺、各行業的物聯網數據云平臺等。
          海量設備接入
          高效數據采集
          豐富組態控件
          強大的數據分析
          預防式設備維護
          豐富的API接口
          了解更多
          設備遠程接入平臺
          物通博聯·設備遠程接入云平臺是一款針對分布式設備數據實時監測的快速接入平臺,采用SAAS云服務方式為工業現場的各種工業設備的數據互通互聯建立實時在線的數據通道。
          分布式項目監控
          設備互通互聯
          無需公網IP
          快速低成本接入
          實時在線通道
          點對點通信
          了解更多

          物通博聯,助您開啟工業數字化和智能化之路

          申請樣機
          在線
          咨詢
          免費
          試用
          国产丝袜一区二区| 亚洲精品福利视频| 国产成人精品午夜福麻豆| 国产精品白丝jkav网站| 久久精品国产亚洲av瑜伽| 亚洲А∨精品天堂在线| 国产丝袜一区二区| 91精品国产91久久久久福利| 精品精品国产高清a毛片牛牛| 国产精品综合专区中文字幕免费播放| 久草热8精品视频在线观看| 最新在线精品国自av | 国产丝袜精品丝袜一区二区三区| 熟女精品视频一区二区三区| 99久久国产综合精品麻豆| 国产精品一区二区三区免费| 中文字幕日韩精品有码视频 | 国产精品成人一区二区| 亚洲精品乱码久久久久久不卡| 久久国产精品成人片免费| 欧美黑人巨大精品| 亚洲性日韩精品一区二区三区| 久久99国产综合精品| 国产99久久九九精品无码 | 久久夜色精品国产噜噜亚洲AV| 日韩精品一区二区三区四区| 欧美精品丝袜久久久中文字幕| 欧洲成人午夜精品无码区久久| 999久久久国产精品| 中文字幕不卡在线| 精品国产_亚洲人成在线高清| 日韩三级精品| 99国产精品一区二区| 亚洲AV永久无码精品一区二区| 成人无码精品1区2区3区免费看| 精品久人妻去按摩店被黑人按中出| 亚洲精品无码精品mV在线观看| 99久久精品无码一区二区毛片 | 久久九九久精品国产免费直播| 欧美精品hdvideosex4k| 国产午夜亚洲精品国产成人小说|