日韩不卡精品久久_每日更新亚洲超清精品_黄色视频观看一区_色九月亚洲综合网_欧美中文国产字幕_欧美亚洲国产成人影院_漂亮被中出中文字幕色_菠萝蜜视频网在线www_污视频三级片在线观看_日韩欧美国产成人精品高清综合网

首頁 - 關于我們 - 新聞活動 - 物聯講堂 | MQTT的前世今生

物聯講堂 | MQTT的前世今生

2019-9-26新聞

image.png


物聯講堂開課啦!在這里,來給大家介紹物聯網相關技術,講解深度應用,讓大家能更好的理解工業(yè)物聯網價值,推動工業(yè)物聯網應用落地。今天第一講,我們就來講講MQTT的前世今生。

Part1   MQTT的誕生


MQTT(Message Queuing Telemetry Transport,消息隊列遙測傳輸)是一個即時通訊協議。該協議支持所有平臺,幾乎可以把所有聯網物品和外部連接起來,被用來當做傳感器和致動器的通信協議。


image.png


說起通訊協議,這里不得不先回顧一下最早的"摩托巴士”——MODBUS。市面上絕大多數的PLC都支持modbus協議。當電腦或者HMI需要獲取某個設備或者PLC的數據時,可以通過modbus協議來進行交互。然后根據通信方式的不同,就區(qū)分了串口和以太網的,modbus rtu和modbus tcp。

后來,隨著互聯網的發(fā)展,就有了需要把設備的數據傳到網絡上來,也就是服務器,甚至前端等。于是,物聯網的概念也就隨之提出,并且對于協議的要求更加高,總體可以概括為:簡單、可靠、并發(fā)、開源。


于是在1999年的時候,IBM設計發(fā)明了MQTT協議。其實當時發(fā)明這個協議并不是用于物聯網的,而是用在一個醫(yī)療系統(tǒng)中。傳感器采集病人的數據,然后通過這個MQTT系統(tǒng),可以即時推送給醫(yī)生。

image.png

隨著物聯網的迅速發(fā)展,MQTT被更加廣泛的使用開來,更有一個專門的MQTT技術委員會,旨在負責定制基于MQTT技術的物聯網標準協議。毋庸置疑,MQTT已基本占領了物聯網中的重要地位。現在,在物聯網的世界里,誰不接觸點MQTT都不好意思說自己是搞物聯網的了。


Part2   MQTT的工作機制

MQTT一般是建立在TCP協議基礎上的一種協議。因此也就有了MQTT客戶端和服務端。MQTT服務端一般只有一個,MQTT客戶端就可以很多了,幾萬甚至幾百萬個。MQTT客戶端連接上服務端之后,為了維持在線狀態(tài),客戶端會向服務端發(fā)心跳。這個心跳包也就2個字節(jié)。


image.png



同時MQTT消息類型還可以有多種服務質量:


· “至多一次”,消息發(fā)布完全依賴底層 TCP/IP 網絡。會發(fā)生消息丟失或重復。這一級別可用于如下情況,環(huán)境傳感器數據,丟失一次讀記錄無所謂,因為不久后還會有第二次發(fā)送。

· “至少一次”,確保消息到達,但消息重復可能會發(fā)生。

· “只有一次”,確保消息到達一次。這一級別可用于如下情況,在計費系統(tǒng)中,消息重復或丟失會導致不正確的結果。



Part3   MQTT中的一些概念


MQTT中重要的的幾個概念:登錄,主題,訂閱,生產,發(fā)布,Payload,消費。接下來,通過繁易小劇場—MQTT魔法餐廳,幫助大家更好的理解這些概念。


image.png

在這個環(huán)節(jié)里,MQTT餐廳好比如一個MQTT系統(tǒng)。

其中,服務員就是服務器,顧客和廚師就是客戶端。廚師是生產者,顧客是消費者。

                                                                  【登陸】 這家MQTT魔法餐廳是會員制的,顧客和廚師需要通過身份認證才能登陸。

【主題】 本周餐廳主打“迷情西部”。

image.png

       【訂閱】 顧客需要先向服務員點菜。

       【生產】 每位廚師只做一道招牌菜。

                         【發(fā)布】 廚師做完菜之后,會推送發(fā)布給服務員。

                               【Payload】菜的味道如何,即顧客獲得的消息內容。

【消費】 顧客吃完買單即消費。


當然,有時候,會遇到幾個客戶同時點一份菜,但是MQTT餐廳中的廚師只做一份。這也沒有關系,MQTT魔法餐廳里的服務員能將一份菜變成多份,可以同時發(fā)布給定了菜的顧客們。


image.png

在MQTT系統(tǒng)里,就存在生產,分發(fā),消費這三個環(huán)節(jié)了。數據的交互,主要是通過主題來實現,主題可以理解為MQTT協議的靈魂。

 

Part4   小結

其實MQTT協議就這樣一個通用的模式,就好比美食街里有眾多餐廳一樣。每家餐廳都要有廚師,服務員,顧客,但各家餐廳的菜單不一樣的。也就是每一家做的MQTT,協議都是一樣的,登錄都是需要用戶名和密碼設備ID等參數。但是每家的MQTT定義的主題就不一樣了。可以說,100家做MQTT的,有可能99家定義的主題都不一樣。總而言之,只要MQTT的框架和主題一致,無論使用何種編程語言,無論借助何種硬件平臺,都能實現協議的無縫對接,達成通訊目的。