問答中心

      Answer Center

      下載中心

      視頻中心

      常見問題

      售后服務(wù)

      物聯(lián)網(wǎng)協(xié)議介紹-MQTT 協(xié)議的概念與應(yīng)用

      時(shí)間:2022-11-22 11:43:54 

      點(diǎn)擊:3387 

      關(guān)鍵詞:mqtt,物聯(lián)網(wǎng)協(xié)議 

      問題
      MQTT 協(xié)議是什么?MQTT有什么特性?

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

       

      免責(zé)聲明:本網(wǎng)站部分文章、圖片等信息來源于網(wǎng)絡(luò),版權(quán)歸原作者平臺所有,僅用于學(xué)術(shù)分享,如不慎侵犯了你的權(quán)益,請聯(lián)系我們,我們將做刪除處理!


      產(chǎn)品系列

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

      物通博聯(lián),助您開啟工業(yè)數(shù)字化和智能化之路

      申請樣機(jī)
      在線
      咨詢
      免費(fèi)
      試用
      主站蜘蛛池模板: 天堂一区二区三区在线观看| 国产精品日本一区二区不卡视频| 狠狠综合久久av一区二区| 国产伦精品一区二区三区免费下载| 国产激情一区二区三区在线观看 | 久久一区二区免费播放| 亚欧在线精品免费观看一区| 国产精品无码一区二区在线观一| 精品无码人妻一区二区免费蜜桃 | 国产一区二区三区在线| 亚洲国产欧美国产综合一区| 消息称老熟妇乱视频一区二区| 一区二区三区日本视频| 无码人妻精一区二区三区| 91一区二区视频| 精品国产免费一区二区三区香蕉 | 亚洲国产情侣一区二区三区| 精品福利一区二区三区| 偷拍精品视频一区二区三区 | 久久高清一区二区三区| 国产成人高清视频一区二区| 日本一区二区三区在线视频| 麻豆国产在线不卡一区二区 | 久久国产三级无码一区二区| 高清一区二区三区| 一区二区三区无码高清| 日韩精品一区二区三区视频| 国产日韩精品一区二区三区| 又紧又大又爽精品一区二区| 精品女同一区二区三区在线| 精品国产一区二区三区av片| 欧美亚洲精品一区二区| 国产精品无码一区二区在线观| 欧美成人aaa片一区国产精品 | 水蜜桃av无码一区二区| 香蕉久久一区二区不卡无毒影院| 色久综合网精品一区二区| 精品人无码一区二区三区| 亚洲一区二区三区在线| 久久蜜桃精品一区二区三区| 国语对白一区二区三区|