国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

揭秘MQTT:為何它是物聯(lián)網(wǎng)的首選協(xié)議?

這篇具有很好參考價值的文章主要介紹了揭秘MQTT:為何它是物聯(lián)網(wǎng)的首選協(xié)議?。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

揭秘MQTT:為何它是物聯(lián)網(wǎng)的首選協(xié)議?,MQTT入門,物聯(lián)網(wǎng),IOT,EMQX,MQTT,MQTTX

MQTT 協(xié)議簡介

概覽

MQTT 是一種基于發(fā)布/訂閱模式的輕量級消息傳輸協(xié)議,專門針對低帶寬和不穩(wěn)定網(wǎng)絡(luò)環(huán)境的物聯(lián)網(wǎng)應(yīng)用而設(shè)計,可以用極少的代碼為聯(lián)網(wǎng)設(shè)備提供實(shí)時可靠的消息服務(wù)。MQTT 協(xié)議廣泛應(yīng)用于物聯(lián)網(wǎng)、移動互聯(lián)網(wǎng)、智能硬件、車聯(lián)網(wǎng)、智慧城市、遠(yuǎn)程醫(yī)療、電力、石油與能源等領(lǐng)域。

MQTT 協(xié)議由 Andy Stanford-Clark (IBM)和 Arlen NipperArcom,現(xiàn)為 Cirrus Link)于 1999 年發(fā)布。 按照 Nipper 的介紹,MQTT 必須具備以下幾點(diǎn):

  • 簡單容易實(shí)現(xiàn)
  • 支持 QoS(設(shè)備網(wǎng)絡(luò)環(huán)境復(fù)雜)
  • 輕量且省帶寬(因為那時候帶寬很貴)
  • 數(shù)據(jù)無關(guān)(不關(guān)心 Payload 數(shù)據(jù)格式)
  • 有持續(xù)地會話感知能力(時刻知道設(shè)備是否在線)

據(jù) Arlen NipperIBM Podcast 上的自述,MQTT 原名是 MQ TT,注意 MQ 與 TT之間的空格,其全稱為: MQ Telemetry Transport,是九十年代早期他在參與 Conoco Phillips 公司的一個原油管道數(shù)據(jù)采集監(jiān)控系統(tǒng)(pipeline SCADA system)時開發(fā)的一個實(shí)時數(shù)據(jù)傳輸協(xié)議。它的目的在于讓傳感器通過帶寬有限的 VSAT ,與 IBM 的 MQ Integrator 通信。由于 Nipper 是遙感和數(shù)據(jù)采集監(jiān)控專業(yè)出身,所以按業(yè)內(nèi)慣例取了 MQ TT 這個名字。

MQTT 與其他協(xié)議對比

MQTT vs HTTP
  • MQTT 的最小報文僅為 2 個字節(jié),比 HTTP 占用更少的網(wǎng)絡(luò)開銷。
  • MQTT 與 HTTP 都能使用 TCP 連接,并實(shí)現(xiàn)穩(wěn)定、可靠的網(wǎng)絡(luò)連接。
  • MQTT 基于發(fā)布訂閱模型,HTTP 基于請求響應(yīng),因此 MQTT 支持雙工通信。
  • MQTT 可實(shí)時推送消息,但 HTTP 需要通過輪詢獲取數(shù)據(jù)更新。
  • MQTT 是有狀態(tài)的,但是 HTTP 是無狀態(tài)的。
  • MQTT 可從連接異常斷開中恢復(fù),HTTP 無法實(shí)現(xiàn)此目標(biāo)。
MQTT vs XMPP

MQTT 協(xié)議設(shè)計簡單輕量、路由靈活,將在移動互聯(lián)網(wǎng)、物聯(lián)網(wǎng)消息領(lǐng)域,全面取代 PC 時代的 XMPP 協(xié)議。

  • MQTT 報文體積小且編解碼容易,XMPP 基于繁重的 XML,報文體積大且交互繁瑣。
  • MQTT 基于發(fā)布訂閱模式,相比 XMPP 基于 JID 的點(diǎn)對點(diǎn)消息路由更為靈活。
  • MQTT 支持 JSON、二進(jìn)制等不同類型報文。XMPP 采用 XML 承載報文,二進(jìn)制必須 Base64 編碼等處理。
  • MQTT 通過 QoS 保證消息可靠傳輸,XMPP 主協(xié)議并未定義類似機(jī)制。

為什么 MQTT 是適用于物聯(lián)網(wǎng)的最佳協(xié)議?

據(jù) IoT Analytics 最新發(fā)布的《2022 年春季物聯(lián)網(wǎng)狀況》研究報告顯示,到 2022 年,物聯(lián)網(wǎng)市場預(yù)計將增長 18%,達(dá)到 144 億活躍連接。

在如此大規(guī)模的物聯(lián)網(wǎng)需求下,海量的設(shè)備接入和設(shè)備管理對網(wǎng)絡(luò)帶寬、通信協(xié)議以及平臺服務(wù)架構(gòu)都帶來了巨大的挑戰(zhàn)。對于物聯(lián)網(wǎng)協(xié)議來說,必須針對性地解決物聯(lián)網(wǎng)設(shè)備通信的幾個關(guān)鍵問題:網(wǎng)絡(luò)環(huán)境復(fù)雜而不可靠、內(nèi)存和閃存容量小、處理器能力有限。

MQTT 協(xié)議正是為了應(yīng)對以上問題而創(chuàng)建,經(jīng)過多年的發(fā)展憑借其輕量高效、可靠的消息傳遞、海量連接支持、安全的雙向通信等優(yōu)點(diǎn)已成為物聯(lián)網(wǎng)行業(yè)的首選協(xié)議。

揭秘MQTT:為何它是物聯(lián)網(wǎng)的首選協(xié)議?,MQTT入門,物聯(lián)網(wǎng),IOT,EMQX,MQTT,MQTTX

輕量高效,節(jié)省帶寬

MQTT 將協(xié)議本身占用的額外消耗最小化,消息頭部最小只需要占用 2 個字節(jié),可穩(wěn)定運(yùn)行在帶寬受限的網(wǎng)絡(luò)環(huán)境下。同時,MQTT 客戶端只需占用非常小的硬件資源,能運(yùn)行在各種資源受限的邊緣端設(shè)備上。

可靠的消息傳遞

MQTT 協(xié)議提供了 3 種消息服務(wù)質(zhì)量等級(Quality of Service),保證了在不同的網(wǎng)絡(luò)環(huán)境下消息傳遞的可靠性。

  • QoS 0:消息最多傳遞一次。
    如果當(dāng)時客戶端不可用,則會丟失該消息。發(fā)布者發(fā)送一條消息之后,就不再關(guān)心它有沒有發(fā)送到對方,也不設(shè)置任何重發(fā)機(jī)制。

  • QoS 1:消息傳遞至少 1 次。
    包含了簡單的重發(fā)機(jī)制,發(fā)布者發(fā)送消息之后等待接收者的 ACK,如果沒收到 ACK 則重新發(fā)送消息。這種模式能保證消息至少能到達(dá)一次,但無法保證消息重復(fù)。

  • QoS 2:消息僅傳送一次。
    設(shè)計了重發(fā)和重復(fù)消息發(fā)現(xiàn)機(jī)制,保證消息到達(dá)對方并且嚴(yán)格只到達(dá)一次。

除了 QoS 之外,MQTT 還提供了清除會話(Clean Session)機(jī)制。對于那些想要在重新連接后,收到離線期間錯過的消息的客戶端,可在連接時設(shè)置關(guān)閉清除會話,此時服務(wù)端將會為客戶端存儲訂閱關(guān)系及離線消息,并在客戶端再次上線后發(fā)送給客戶端。

海量連接支持

MQTT 協(xié)議從誕生之時便考慮到了日益增長的海量物聯(lián)網(wǎng)設(shè)備,得益于其優(yōu)秀的設(shè)計,基于 MQTT 的物聯(lián)網(wǎng)應(yīng)用及服務(wù)可輕松具備高并發(fā)、高吞吐、高可擴(kuò)展能力。

連接海量的物聯(lián)網(wǎng)設(shè)備,離不開 MQTT 服務(wù)器的支持。目前,MQTT 服務(wù)器中支持并發(fā)連接數(shù)最多的是 EMQX。最近發(fā)布的 EMQX 5.0 通過一個 23 節(jié)點(diǎn)的集群達(dá)成了 **1 億 MQTT 連接+**每秒 100 萬消息吞吐,這使得 EMQX 5.0 成為目前為止全球最具擴(kuò)展性的 MQTT 服務(wù)器。

安全的雙向通信

依賴于發(fā)布訂閱模式,MQTT 允許在設(shè)備和云之間進(jìn)行雙向消息通信。發(fā)布訂閱模式的優(yōu)點(diǎn)在于:發(fā)布者與訂閱者不需要建立直接連接,也不需要同時在線,而是由消息服務(wù)器負(fù)責(zé)所有消息的路由和分發(fā)工作。

安全性是所有物聯(lián)網(wǎng)應(yīng)用的基石,MQTT 支持通過 TLS/SSL 確保安全的雙向通信,同時 MQTT 協(xié)議中提供的客戶端 ID、用戶名和密碼允許我們實(shí)現(xiàn)應(yīng)用層的身份驗證和授權(quán)。

在線狀態(tài)感知

為了應(yīng)對網(wǎng)絡(luò)不穩(wěn)定的情況,MQTT 提供了**心跳保活(Keep Alive)**機(jī)制。在客戶端與服務(wù)端長時間無消息交互的情況下,Keep Alive 保持連接不被斷開,若一旦斷開,客戶端可即時感知并立即重連。

同時,MQTT 設(shè)計了遺愿(Last Will) 消息,讓服務(wù)端在發(fā)現(xiàn)客戶端異常下線的情況下,幫助客戶端發(fā)布一條遺愿消息到指定的 MQTT 主題

另外,部分 MQTT 服務(wù)器如 EMQX 也提供了上下線事件通知功能,當(dāng)后端服務(wù)訂閱了特定主題后,即可收到所有客戶端的上下線事件,這樣有助于后端服務(wù)統(tǒng)一處理客戶端的上下線事件。

MQTT 5.0 與 3.1.1

在 MQTT 3.1.1 發(fā)布并成為 OASIS 標(biāo)準(zhǔn)的四年后,MQTT 5.0 正式發(fā)布。這是一次重大的改進(jìn)和升級,它的目的不僅僅是滿足現(xiàn)階段的行業(yè)需求,更是為行業(yè)未來的發(fā)展變化做了充足的準(zhǔn)備。

MQTT 5.0 在 3.1.1 版本基礎(chǔ)上增加了會話/消息延時、原因碼、主題別名、用戶屬性、共享訂閱等更加符合現(xiàn)代物聯(lián)網(wǎng)應(yīng)用需求的特性,提高了大型系統(tǒng)的性能、穩(wěn)定性與可擴(kuò)展性。目前,MQTT 5.0 已成為絕大多數(shù)物聯(lián)網(wǎng)企業(yè)的首選協(xié)議,我們建議初次接觸 MQTT 的開發(fā)者直接使用該版本。

MQTT 服務(wù)器

MQTT 服務(wù)器負(fù)責(zé)接收客戶端發(fā)起的連接,并將客戶端發(fā)送的消息轉(zhuǎn)發(fā)到另外一些符合條件的客戶端。一個成熟的 MQTT 服務(wù)器可支持海量的客戶端連接及百萬級的消息吞吐,幫助物聯(lián)網(wǎng)業(yè)務(wù)提供商專注于業(yè)務(wù)功能并快速創(chuàng)建一個可靠的 MQTT 應(yīng)用。

EMQX 是一款應(yīng)用廣泛的大規(guī)模分布式物聯(lián)網(wǎng) MQTT 服務(wù)器。自 2013 年在 GitHub 發(fā)布開源版本以來,目前全球下載量已超千萬,累計連接物聯(lián)網(wǎng)關(guān)鍵設(shè)備超過 1 億臺。

感興趣的可通過如下 Docker 命令安裝 EMQX 5.0 開源版進(jìn)行體驗。

docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx:latest

也可直接在 EMQX Cloud 上創(chuàng)建完全托管的 MQTT 服務(wù)。

MQTT 客戶端

MQTT 應(yīng)用通常需要基于 MQTT 客戶端庫來實(shí)現(xiàn) MQTT 通信。目前,基本所有的編程語言都有成熟的開源 MQTT 客戶端庫,你可以參考 EMQ 整理的 MQTT 客戶端庫大全選擇一個合適的客戶端庫來構(gòu)建滿足自身業(yè)務(wù)需求的 MQTT 客戶端。

MQTT 應(yīng)用開發(fā)還離不開 MQTT 測試工具的支持,一款易用且功能強(qiáng)大的 MQTT 測試工具可幫助開發(fā)者縮短開發(fā)周期,創(chuàng)建一個穩(wěn)定的物聯(lián)網(wǎng)應(yīng)用。

MQTTX 是一款開源的跨平臺桌面客戶端,它簡單易用且提供全面的 MQTT 5.0 功能、特性測試,可運(yùn)行在macOS, Linux 和 Windows 上。同時,它還提供了命令行及瀏覽器版本,滿足不同場景下的 MQTT 測試需求。感興趣的可訪問 MQTTX 官網(wǎng)進(jìn)行下載試用。
揭秘MQTT:為何它是物聯(lián)網(wǎng)的首選協(xié)議?,MQTT入門,物聯(lián)網(wǎng),IOT,EMQX,MQTT,MQTTX
以上就是今天的全部內(nèi)容了,歡迎大家下載體驗!

參考鏈接:https://www.emqx.com/zh/blog/what-is-the-mqtt-protocol#mqtt-%E5%8D%8F%E8%AE%AE%E7%AE%80%E4%BB%8B文章來源地址http://www.zghlxwxcb.cn/news/detail-751342.html

到了這里,關(guān)于揭秘MQTT:為何它是物聯(lián)網(wǎng)的首選協(xié)議?的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【物聯(lián)網(wǎng)協(xié)議】MQTT

    MQTT是一種基于發(fā)布/訂閱模式的協(xié)議,其中客戶端(稱為發(fā)布者)向主題發(fā)布消息,并允許其他客戶端(稱為訂閱者)從這些主題訂閱消息。MQTT支持多個QoS級別以及最后遺愿消息(LWT)等高級特性。 MQTT客戶端通常需要與MQTT代理服務(wù)器進(jìn)行通信以發(fā)布或訂閱消息。它們可以運(yùn)

    2024年02月02日
    瀏覽(40)
  • 物聯(lián)網(wǎng)協(xié)議之MQTT

    物聯(lián)網(wǎng)協(xié)議之MQTT

    MQTT 可以簡單看做一個網(wǎng)絡(luò)協(xié)議,用于 機(jī)器對機(jī)器 的通信(與客戶端到服務(wù)器的傳輸有點(diǎn)區(qū)別)。智能傳感器、可穿戴設(shè)備和其他物聯(lián)網(wǎng)(IoT)設(shè)備通常必須通過 帶寬有限 的 資源受限 網(wǎng)絡(luò)傳輸和接收數(shù)據(jù)。這些物聯(lián)網(wǎng)設(shè)備使用 MQTT 進(jìn)行數(shù)據(jù)傳輸,因為它易于實(shí)施,并且可

    2024年02月05日
    瀏覽(20)
  • Java 物聯(lián)網(wǎng)協(xié)議MQTT和 CoAP

    Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,challenge Survive. happy for hardess to solve denpendies. java IOT 協(xié)議是大家非常熟悉的一種的協(xié)議。 需求: 1.概述 2. 協(xié)議分類 1.概述 物聯(lián)網(wǎng)核心組成就是物聯(lián)設(shè)備、網(wǎng)關(guān)和云端

    2024年01月25日
    瀏覽(20)
  • 穿越物聯(lián)網(wǎng)的迷霧:深入理解MQTT協(xié)議

    穿越物聯(lián)網(wǎng)的迷霧:深入理解MQTT協(xié)議

    在物聯(lián)網(wǎng)(IoT)的海洋中,數(shù)據(jù)像水流一樣流動,連接成千上萬個設(shè)備,使它們能夠“交流”并執(zhí)行任務(wù)。要實(shí)現(xiàn)這種無縫的交流,需要一個高效、輕量級的通信協(xié)議,而MQTT(Message Queuing Telemetry Transport)正是這樣一種協(xié)議。本篇博客將深入探索MQTT的世界,從它的基礎(chǔ)原理到

    2024年04月25日
    瀏覽(18)
  • 物聯(lián)網(wǎng)通信協(xié)議-MQTT及使用python實(shí)現(xiàn)

    物聯(lián)網(wǎng)通信協(xié)議-MQTT及使用python實(shí)現(xiàn)

    簡述 MQTT(Message Queuing Telemetry Transport,消息隊列遙測傳輸協(xié)議),是一種基于發(fā)布/訂閱(publish/subscribe)模式的\\\"輕量 級\\\"通訊協(xié)議,該協(xié)議構(gòu)建于TCP/IP協(xié)議上,由IBM在1999年發(fā)布。MQTT最大優(yōu)點(diǎn)在于,可以以極少的代碼和有限的帶寬,為連接遠(yuǎn)程設(shè)備提供實(shí)時可靠的消息服務(wù)。作

    2024年02月10日
    瀏覽(26)
  • 基于OpenWrt使用MQTT物聯(lián)網(wǎng)協(xié)議詳解和應(yīng)用

    基于OpenWrt使用MQTT物聯(lián)網(wǎng)協(xié)議詳解和應(yīng)用

    大家好,這篇文章給大家介紹MQTT協(xié)議以及如何在OpenWrt系統(tǒng)中使用MQTT客戶端和開發(fā),并給出相關(guān)實(shí)例代碼。 MQTT(Message Queuing Telemetry Transport)是一種輕量級的通信協(xié)議,設(shè)計用于在低帶寬和不穩(wěn)定的網(wǎng)絡(luò)環(huán)境中傳輸消息。它最初由IBM開發(fā),用于連接遠(yuǎn)程設(shè)備和傳感器到網(wǎng)絡(luò),

    2024年02月02日
    瀏覽(23)
  • 基于mqtt協(xié)議的物聯(lián)網(wǎng)項目之微信小程序mqtt連接(三)

    基于mqtt協(xié)議的物聯(lián)網(wǎng)項目之微信小程序mqtt連接(三)

    官方連接 https://www.emqx.com/zh/blog/how-to-use-mqtt-in-wechat-miniprogram 所以uniapp使用v4.1.0版本,試過v3.0.0也可以用 默認(rèn)從阿里云下載的SSL證書為cert.pem和key.key格式,我們要使用轉(zhuǎn)換工具把.key轉(zhuǎn)換成.pem 在線轉(zhuǎn)換地址為:https://www.myssl.cn/tools/merge-pem-cert.html 替換EMQX安裝路徑下etc/emqx/cer

    2024年02月10日
    瀏覽(26)
  • 使用4G通信模塊和MQTT協(xié)議,完成物聯(lián)網(wǎng)設(shè)備開發(fā)。

    使用4G通信模塊和MQTT協(xié)議,完成物聯(lián)網(wǎng)設(shè)備開發(fā)。

    (1)安裝并使用4G模塊通信模塊,建立microPython開發(fā)環(huán)境; (2)使用提供的Demo開發(fā)例程,使用MQTT傳輸協(xié)議連接阿里或騰訊網(wǎng)站,完成物聯(lián)網(wǎng)設(shè)備開發(fā)。 (3)將溫濕度信息上傳到網(wǎng)站; (4)手機(jī)APP查看數(shù) 這是第一步,在阿里云平臺創(chuàng)建產(chǎn)品和設(shè)備,用來將實(shí)際的設(shè)備數(shù)據(jù)

    2024年02月04日
    瀏覽(32)
  • 4大企業(yè)實(shí)例解析:為何MongoDB Atlas成為AI服務(wù)構(gòu)建的首選

    4大企業(yè)實(shí)例解析:為何MongoDB Atlas成為AI服務(wù)構(gòu)建的首選

    隨著人工智能和生成式AI技術(shù)的迅猛發(fā)展,眾多企業(yè)和機(jī)構(gòu)正積極利用自然語言處理(NLP)、大型語言模型(LLM)等前沿技術(shù),打造出一系列AI驅(qū)動的產(chǎn)品、服務(wù)和應(yīng)用程序。 本文將展示四家已在AI創(chuàng)新領(lǐng)域取得顯著成效的企業(yè),以及他們與MongoDB的緊密合作。這些企業(yè)選擇了

    2024年04月10日
    瀏覽(19)
  • 基于mqtt協(xié)議的物聯(lián)網(wǎng)項目之微信小程序(二)

    基于mqtt協(xié)議的物聯(lián)網(wǎng)項目之微信小程序(二)

    硬件設(shè)備通過 mqtt:tcp port:1883 與服務(wù)器建立連接 網(wǎng)頁/小程序 —websocket—mqtt:ws port:8083 mqtt:wss(wxs) prot:8084與服務(wù)器連接 小程序規(guī)定只能用8084端口 HTTP 協(xié)議有一個缺陷:通信只能由客戶端發(fā)起,websocket是一種新的協(xié)議,所有瀏覽器都支持。 WebSocket是一種在單個TCP連接上進(jìn)行全雙

    2024年01月20日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包