數(shù)據(jù)流如何在MQ遙測傳輸 (MQTT) 中工作
在Internet和計(jì)算機(jī)上發(fā)現(xiàn)的由人類創(chuàng)建的數(shù)據(jù)并不總是準(zhǔn)確的。人工打字、掃描、拍照或錄音并不總是可靠的。但是,如果機(jī)器上有傳感器可以收集數(shù)據(jù)并能夠與其他機(jī)器通信呢?如果有某種協(xié)議可以讓醫(yī)療和個(gè)人小工具、電器和其他電子設(shè)備相互發(fā)送和接收數(shù)據(jù)怎么辦?
例如,這樣的系統(tǒng)意味著人們可以準(zhǔn)確地跟蹤他們庫存中的物品。或者他們店里的哪些零件或物品需要更換、補(bǔ)充或修理。由于設(shè)備中的傳感器收集數(shù)據(jù),這意味著數(shù)據(jù)更準(zhǔn)確、更可靠。
隨著第四次工業(yè)革命的到來,這個(gè)系統(tǒng)成為可能。它帶來了物聯(lián)網(wǎng)(IoT)、機(jī)器人技術(shù)、人工智能和其他新興的顛覆性技術(shù)。
MQTT概述
可以相互發(fā)送和接收消息的智能電視、智能手表和其他“智能”設(shè)備和小工具現(xiàn)在與網(wǎng)站上的cookie一樣普遍。這些可以通過傳感器收集數(shù)據(jù)并將其發(fā)送到其他設(shè)備的智能設(shè)備統(tǒng)稱為物聯(lián)網(wǎng)(IoT)。
設(shè)備如何做到這一點(diǎn)?它們相互通信的能力是通過一種稱為消息隊(duì)列遙測傳輸(MQTT)的消息傳遞技術(shù)實(shí)現(xiàn)的。它是一個(gè)基于IP的輕量級消息傳遞系統(tǒng),為物聯(lián)網(wǎng)提供支持。它使控制器、傳感器和其他小工具或設(shè)備能夠相互“對話”。此外,它支持并不總是在線的設(shè)備,例如配備微控制器的自動(dòng)化設(shè)備。
MQTT消息傳遞協(xié)議由IBM的Andy Clark和Eurotech的Arlen Nipper于1999年創(chuàng)建。它最初是主要用于石油和天然氣行業(yè)的專有協(xié)議,后來成為開源協(xié)議。MQTT設(shè)計(jì)用于在低帶寬網(wǎng)絡(luò)中工作。此特性非常適合數(shù)字足跡較小的機(jī)器對機(jī)器通信和物聯(lián)網(wǎng)設(shè)備。它不僅適用于低帶寬網(wǎng)絡(luò),也適用于高延遲環(huán)境。
MQTT用于各種行業(yè),如制造、健康、電信、汽車等。它現(xiàn)在被公認(rèn)為物聯(lián)網(wǎng)消息傳遞的標(biāo)準(zhǔn)。該消息系統(tǒng)采用發(fā)布者/訂閱者原則,使用MQTT服務(wù)器進(jìn)行操作。發(fā)送者和接收者都不需要直接相互連接。
來自源的數(shù)據(jù)由訂閱接收此類數(shù)據(jù)的客戶發(fā)布和接收。發(fā)布者和訂閱者的關(guān)系是這樣的:
- 發(fā)布者(數(shù)據(jù)源)在主題上傳輸數(shù)據(jù)或消息。
- 客戶端訂閱一個(gè)主題來接收消息。
- 服務(wù)器將發(fā)布者與訂閱者進(jìn)行匹配。
- 如果未找到匹配項(xiàng),則丟棄該消息。
這種安排類似于廣播或電視廣播——您只能從您調(diào)到的頻道查看傳輸。在MQTT中,數(shù)據(jù)源“發(fā)布”數(shù)據(jù),接收者獲取數(shù)據(jù),因?yàn)樗麄兪亲杂嗛喺摺?/p>
MQTT架構(gòu)及數(shù)據(jù)傳輸協(xié)議
MQTT旨在成為輕量級設(shè)備的簡單發(fā)布/訂閱協(xié)議,由兩個(gè)主要組件組成:代理/服務(wù)器和客戶端。
1.MQTT代理/服務(wù)器
運(yùn)行從數(shù)據(jù)源或發(fā)布者接收消息的軟件的計(jì)算機(jī)稱為代理或服務(wù)器。然后,服務(wù)器/代理將數(shù)據(jù)從源發(fā)送到其正確的目的地,即訂閱者。該軟件可以使用專有或開源軟件、現(xiàn)場桌面PC或Raspberry Pi安裝在基于云的代理/服務(wù)器上。但是,如果您正在處理可以通過Internet控制的IoT項(xiàng)目,則使用基于云的服務(wù)器更合適。
服務(wù)器可以管理多達(dá)數(shù)千個(gè)同時(shí)連接的MQTT客戶端,具體取決于實(shí)現(xiàn)。因此,在選擇MQTT服務(wù)器時(shí),可擴(kuò)展性和集成性是必不可少的考慮因素。除了接收和發(fā)送消息之外,服務(wù)器還具有其他能力,例如:
- 安全
需要保護(hù)MQTT。它應(yīng)該要求其客戶提供強(qiáng)大的用戶名和密碼。此外,傳輸控制協(xié)議連接應(yīng)使用安全套接字層(SSL)和傳輸層安全性(TLS)進(jìn)行加密。這些安全措施應(yīng)確保消息在傳輸過程中的安全性和隱私性。
- 服務(wù)質(zhì)量(QoS)級別
服務(wù)質(zhì)量(QoS)級別是消息源和預(yù)期接收者之間的協(xié)議。該協(xié)議定義了特定消息的傳遞保證。MQ遙測傳輸中有三個(gè)級別的QoS:
- 最多一次(0)
在此級別,無法保證交付。這個(gè)級別最多保證的是“盡力而為”的交付。該消息既不存儲(chǔ)也不重新發(fā)送,并且收件人不發(fā)送接收確認(rèn)。當(dāng)Internet可靠且需要快速傳送數(shù)據(jù)時(shí),使用此服務(wù)質(zhì)量級別。
- 至少一次(1)
保證消息至少傳遞給訂閱者一次。發(fā)布者存儲(chǔ)消息,直到接收者發(fā)送接收確認(rèn)。服務(wù)器還確認(rèn)發(fā)布者發(fā)送的消息,讓客戶端知道消息已收到。如果客戶端沒有收到確認(rèn),該消息將再次發(fā)送。
確認(rèn)告訴訂閱者客戶端所有與客戶端訂閱的主題有關(guān)的消息都已發(fā)布。雖然在此級別可以保證接收到的消息,但如果未按時(shí)收到接收確認(rèn),則可能會(huì)發(fā)生重復(fù)消息。
如果客戶端需要接收訂閱主題的所有消息,則使用級別2。但是,許多商業(yè)服務(wù)器不支持2級,因?yàn)樗鄬^慢且占用資源。
- 正好一次(2)
級別2是MQ遙測傳輸中的最高服務(wù)質(zhì)量級別。每條消息都保證被訂閱者接收一次。它也是三個(gè)QoS級別中最安全但最慢的一個(gè)。雖然級別1可能導(dǎo)致消息重復(fù),但級別2保證只接收一次數(shù)據(jù)。
此保證由發(fā)布者和訂閱者之間的兩個(gè)(至少)“請求和響應(yīng)”流提供,這表明消息已被接收。一旦訂閱者確認(rèn)收到消息,發(fā)布者就可以丟棄數(shù)據(jù)包。如果發(fā)布者沒有收到來自訂閱者的“收到消息”信號(hào),則消息將繼續(xù)發(fā)送,直到消息被確認(rèn)。
高QoS級別更可靠,但涉及高帶寬要求和更高延遲,這會(huì)減慢數(shù)據(jù)傳輸速度。當(dāng)不需要快速消息傳遞并且重復(fù)消息可能導(dǎo)致問題時(shí),使用此級別。
就QoS而言,消息傳遞有兩個(gè)方面:從發(fā)布者到服務(wù)器以及從服務(wù)器到訂閱者。每次將數(shù)據(jù)發(fā)送到服務(wù)器時(shí),數(shù)據(jù)或消息的來源/發(fā)布者都會(huì)設(shè)置數(shù)據(jù)的QoS級別。然后,服務(wù)器根據(jù)客戶端的QoS級別(在訂閱過程開始時(shí)設(shè)置)將數(shù)據(jù)發(fā)送到訂閱者客戶端。如果客戶端的QoS設(shè)置低于發(fā)布客戶端,則服務(wù)器將發(fā)送QoS較低的數(shù)據(jù)。
此特性允許MQTT提供附加的消息傳遞服務(wù)質(zhì)量,確保根據(jù)客戶端的要求發(fā)送數(shù)據(jù)。
- 存儲(chǔ)和轉(zhuǎn)發(fā)
即使訂閱者客戶端無法接收消息,某些MQTT消息也可以存儲(chǔ)并轉(zhuǎn)發(fā)給訂閱者。這些消息稱為客戶端可以訂閱的“存儲(chǔ)和轉(zhuǎn)發(fā)主題”。當(dāng)訂閱者可以接收消息時(shí),訂閱了存儲(chǔ)和轉(zhuǎn)發(fā)功能的客戶端可以接收存儲(chǔ)的數(shù)據(jù)。
要使此功能有效運(yùn)行,MQTT服務(wù)器需要執(zhí)行以下操作:
- 跟蹤每個(gè)訂閱者的客戶ID
- 跟蹤成功發(fā)送到每個(gè)客戶端的最后一條消息的標(biāo)識(shí)符。
MQTT代理會(huì)自動(dòng)刪除過期消息,除非配置為保留它們。代理存儲(chǔ)配置的主題,以防將來的客戶訂閱它們。然后,這些消息將按照最初接收消息的順序傳遞給訂閱者。
2.MQTT客戶端
MQTT客戶端可以是發(fā)布者和訂閱者。標(biāo)簽“發(fā)布者”和“訂閱者”指的是發(fā)布消息或訂閱接收消息的客戶端。在MQTT中,發(fā)布/訂閱功能可以在同一個(gè)客戶端中實(shí)現(xiàn)??蛻舳丝梢栽谕ㄐ烹A段執(zhí)行不同的功能,如訂閱、取消訂閱、發(fā)布、連接和斷開連接。
此外,這些客戶端可以是任何設(shè)備或應(yīng)用程序,從微型計(jì)算機(jī)到配備各種花里胡哨的完全承諾的基于云的代理/服務(wù)器??蛻舳丝梢允蔷哂凶钚旌陀邢拶Y源的緊湊型設(shè)備,并使用無線網(wǎng)絡(luò)連接。
可以這么說,任何能夠通過TCP/IP堆棧運(yùn)行MQTT的設(shè)備都可以成為客戶端。MQTT的實(shí)現(xiàn)是流線型和直接的,這些特性使MQTT非常適合使用最少資源的小型設(shè)備。
結(jié)論
消息隊(duì)列遙測傳輸(MQTT)是一種使智能家電、智能小工具和其他物聯(lián)網(wǎng)(IoT)設(shè)備“對話”并與其他機(jī)器或系統(tǒng)共享信息的技術(shù)。這種消息傳遞技術(shù)使您的智能手機(jī)、冰箱、可穿戴設(shè)備、恒溫器、遠(yuǎn)程傳感器和其他智能小工具相互交換數(shù)據(jù)。
MQTT中的數(shù)據(jù)流在服務(wù)器/代理的幫助下通過簡單的發(fā)布者/訂閱者系統(tǒng)工作。發(fā)布者通過服務(wù)器傳輸有關(guān)主題的數(shù)據(jù);然后服務(wù)器將數(shù)據(jù)傳輸?shù)接嗛喸撝黝}的客戶端。
- 上一篇
使用云技術(shù)的公司的7個(gè)企業(yè)應(yīng)用程序
云技術(shù)市場正在蓬勃發(fā)展。去年,公司在云服務(wù)上的花費(fèi)超過4050億美元。突然的增長并不令人驚訝,因?yàn)樵频暮锰幨遣豢伤甲h的。企業(yè)云技術(shù)應(yīng)用是企業(yè)未來的行業(yè)標(biāo)準(zhǔn)。云計(jì)算已進(jìn)入
- 下一篇
硅圖像傳感器加速并簡化自動(dòng)駕駛汽車的圖像處理
哈佛大學(xué)約翰.保爾森工程與應(yīng)用科學(xué)學(xué)院的一組研究人員開發(fā)了第一個(gè)可以集成到商業(yè)硅成像傳感器芯片中的傳感器內(nèi)處理器。這些傳感器被稱為互補(bǔ)金屬氧化物半導(dǎo)體(CMOS)圖像