自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

數(shù)據(jù)流在消息隊(duì)列遙測傳輸(MQTT)中的工作方式

譯文
開發(fā) 架構(gòu)
隨著第四次工業(yè)革命的到來,這個(gè)系統(tǒng)成為可能。它帶來了物聯(lián)網(wǎng)、機(jī)器人、人工智能和其他新興的顛覆性技術(shù)。

譯者 | 李睿

審校 | 孫淑娟

人類在互聯(lián)網(wǎng)和計(jì)算機(jī)上創(chuàng)建的數(shù)據(jù)并不總是準(zhǔn)確的,人類打字、掃描、拍照或錄音也并不總是可靠的。但是,如果機(jī)器上有傳感器收集數(shù)據(jù)并能夠與其他機(jī)器通信呢?如果有某種協(xié)議可以使醫(yī)療和個(gè)人設(shè)備、電器和其他電子設(shè)備相互發(fā)送和接收數(shù)據(jù)呢?

例如,這樣的系統(tǒng)意味著人們可以準(zhǔn)確地跟蹤他們庫存中的物品。或者他們商店中需要更換、補(bǔ)充或修理的零件或項(xiàng)目。由于設(shè)備中的傳感器收集數(shù)據(jù),這意味著數(shù)據(jù)更準(zhǔn)確、更可靠。

隨著第四次工業(yè)革命的到來,這個(gè)系統(tǒng)成為可能。它帶來了物聯(lián)網(wǎng)、機(jī)器人、人工智能和其他新興的顛覆性技術(shù)。

一、MQTT概述

智能電視、智能手表和其他可以相互發(fā)送和接收信息的“智能”設(shè)備和小工具現(xiàn)在與網(wǎng)站上的Cookie一樣常見。這些可以通過傳感器收集數(shù)據(jù)并將其發(fā)送到其他設(shè)備的智能設(shè)備稱為物聯(lián)網(wǎng)設(shè)備。

物聯(lián)網(wǎng)設(shè)備如何做到這一點(diǎn)?它們相互通信的能力是通過一種稱為消息隊(duì)列遙測傳輸(MQTT)的消息傳遞技術(shù)實(shí)現(xiàn)的。它是一個(gè)基于IP的輕量級消息傳遞系統(tǒng),為物聯(lián)網(wǎng)提供支持。它使控制器、傳感器和其他小工具或設(shè)備能夠相互“交談”。此外,它還支持并不總是在線的設(shè)備,例如配備微控制器的自動化設(shè)備。

MQTT消息傳遞協(xié)議由IBM公司的Andy Clark和Eurotech公司的Arlen Nipper于1999年創(chuàng)建。它最初是主要用于石油和天然氣行業(yè)的專有協(xié)議,后來成為一個(gè)開源協(xié)議。MQTT設(shè)計(jì)用于在低帶寬網(wǎng)絡(luò)中工作。這一特性非常適合數(shù)字足跡較小的機(jī)器對機(jī)器通信和物聯(lián)網(wǎng)設(shè)備。它不僅適用于低帶寬網(wǎng)絡(luò),也適用于高延遲環(huán)境。

MQTT用于制造業(yè)、衛(wèi)生、電信、汽車等其他行業(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ù)或消息。
  • 客戶端訂閱主題以接收消息。
  • 服務(wù)器將發(fā)布者與訂閱者匹配。
  • 如果未找到匹配項(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)場臺式電腦或Raspberry Pi安裝在基于云的代理/服務(wù)器上。但是,如果正在處理可以通過互聯(lián)網(wǎng)控制的物聯(lián)網(wǎng)項(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è)級別的服務(wù)質(zhì)量(QoS):

(1)最多一次(0)

在這一級別,無法保證交付。這個(gè)級別最多保證的是“盡力而為”的交付。該消息既不存儲也不重新發(fā)送,并且收件人不發(fā)送接收確認(rèn)。當(dāng)互聯(lián)網(wǎng)可靠且需要快速交付數(shù)據(jù)時(shí),使用這一服務(wù)質(zhì)量級別。

(2)至少一次(1)

保證消息至少傳遞給訂閱者一次。發(fā)布者存儲消息,直到接收者發(fā)送接收確認(rèn)。

服務(wù)器還確認(rèn)發(fā)布者發(fā)送的消息,讓客戶端知道消息已收到。如果客戶端沒有收到確認(rèn),消息將再次發(fā)送。

確認(rèn)告訴訂閱者客戶端所有與客戶端訂閱的主題有關(guān)的消息都已發(fā)布。雖然在這一級別可以保證收到消息,但如果沒有按時(shí)收到回執(zhí),則可能會出現(xiàn)重復(fù)消息。

如果客戶端需要接收訂閱主題的所有消息,則使用級別2。但是,許多商業(yè)服務(wù)器不支持級別2,因?yàn)樗鄬^慢且占用資源。

(3)恰好一次(2)

級別2是消息隊(duì)列遙測傳輸(MQTT)中的最高服務(wù)質(zhì)量級別。每條消息都保證被訂閱者接收一次。它也是三個(gè)服務(wù)質(zhì)量(QoS)級別中最安全但最慢的一個(gè)。雖然級別1可能導(dǎo)致消息重復(fù),但級別2保證只接收一次數(shù)據(jù)。 

這一保證由發(fā)布者和訂閱者之間的兩個(gè)(至少兩個(gè))“請求和響應(yīng)”流提供,這表明消息已被接收。一旦訂閱者確認(rèn)收到消息,發(fā)布者就可以丟棄數(shù)據(jù)包。如果發(fā)布者沒有收到來自訂閱者的“收到消息”信號,則消息將繼續(xù)發(fā)送,直到消息被確認(rèn)。

高QoS級別更可靠,但涉及高帶寬要求和更高延遲,這會減慢數(shù)據(jù)傳輸速度。當(dāng)不需要快速消息傳遞并且重復(fù)消息可能導(dǎo)致問題時(shí),使用這一級別。

就QoS而言,消息傳遞有兩個(gè)方面:從發(fā)布者到服務(wù)器以及從服務(wù)器到訂閱者。每次將數(shù)據(jù)發(fā)送到服務(wù)器時(shí),數(shù)據(jù)或消息的來源/發(fā)布者都會設(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ù)。

  • 存儲和轉(zhuǎn)發(fā)

即使訂閱者客戶端無法接收消息,某些MQTT消息也可以存儲并轉(zhuǎn)發(fā)給訂閱者。這些消息稱為客戶端可以訂閱的“存儲和轉(zhuǎn)發(fā)主題”。當(dāng)訂閱者可以接收消息時(shí),訂閱了存儲和轉(zhuǎn)發(fā)功能的客戶端可以接收存儲的數(shù)據(jù)。

要使這一功能有效運(yùn)行,MQTT服務(wù)器需要執(zhí)行以下操作:

(1)跟蹤每個(gè)訂閱者的客戶ID。

(2)跟蹤成功發(fā)送到每個(gè)客戶端的最后一條消息的標(biāo)識符。

MQTT代理會自動刪除過期消息,除非配置保留它們。代理存儲配置的主題,以防將來的客戶訂閱它們。然后,這些消息將按照最初接收消息的順序傳遞給訂閱者。

2.MQTT客戶端

MQTT客戶端可以是發(fā)布者和訂閱者。標(biāo)簽“發(fā)布者”和“訂閱者”指的是發(fā)布消息或訂閱接收消息的客戶端。在MQTT中,發(fā)布/訂閱功能可以在同一個(gè)客戶端中實(shí)現(xiàn)??蛻舳丝梢栽谕ㄐ烹A段執(zhí)行不同的功能,如訂閱、取消訂閱、發(fā)布、連接和斷開連接。

此外,這些客戶端可以是任何設(shè)備或應(yīng)用程序,從臺式電腦到配備各種完全承諾的基于云的代理/服務(wù)器。客戶端可以是具有最小庫和有限資源的緊湊型設(shè)備,并使用無線網(wǎng)絡(luò)連接。

可以這么說,任何能夠通過TCP/IP堆棧運(yùn)行MQTT的設(shè)備都可以成為客戶端。MQTT的實(shí)現(xiàn)是簡化和直接的,這些特性使MQTT非常適合使用最少資源的小型設(shè)備。

三、結(jié)論

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ù)接嗛喸撝黝}的客戶端。

原文鏈接:https://www.smartdatacollective.com/how-data-flow-works-in-mq-telemetry-transport-mqtt/

責(zé)任編輯:武曉燕 來源: 51CTO技術(shù)棧
相關(guān)推薦

2009-06-22 16:42:26

JSF的工作方式

2009-07-10 13:55:48

Swing控件

2009-09-28 13:39:01

Hibernate工作

2009-07-14 12:47:07

WebWork工作方式

2010-01-25 14:57:49

Android數(shù)據(jù)庫

2010-08-06 10:41:59

Flex命名空間

2016-10-27 17:49:07

群暉群暉科技NAS

2020-11-17 08:59:28

MQTT

2009-08-13 18:36:29

C#數(shù)組工作方式

2010-07-22 09:01:02

SQL Server鏡

2022-07-19 20:33:38

MQTT阿里云IoT服務(wù)

2024-03-27 14:51:23

2023-03-20 15:34:00

ChatGPT人工智能

2011-07-14 13:20:49

Servlet過濾器

2021-12-07 10:18:06

首席信息官技術(shù)發(fā)展企業(yè)管理者

2019-12-27 10:35:59

物聯(lián)網(wǎng)協(xié)議LWM2M MQTTCoAP

2011-04-19 10:29:57

路由器路由網(wǎng)關(guān)

2009-02-25 10:52:00

路由器原理工作方式協(xié)議

2025-01-02 08:48:28

2022-08-29 20:06:04

樓宇自控物聯(lián)網(wǎng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號