白話MQTT是個啥

1. MQTT是什麼?

MQTT全稱消息隊列遙測傳輸 (Message Queuing Telemetry Transport)。其主要提供了訂閱/發佈兩種消息模式,更爲簡約、輕量,易於使用,特別適合於受限環境(帶寬低、網絡延遲高、網絡通信不穩定)的消息分發,屬於物聯網(Internet of Thing)的一個標準傳輸協議。

2. MQTT的歷史

IBM公司的安迪·斯坦福-克拉克及Arcom公司的阿蘭·尼普於1999年撰寫了該協議的第一個版本。
IBM公司在2013年就向結構化資訊標準促進組織提交了 MQTT 3.1 版規範,並附有相關章程,以確保只能對規範進行少量更改。
2019年四月,MQTT 發佈v5.0版本,現在是官方的OASIS標準。

3. MQTT有哪些用途

自1999年以來,MQTT已廣泛應用於各個行業。因爲MQTT已經成爲標準的物聯網傳輸協議,很多的物聯網設備都採用這些協議傳輸數據,而各行各業基本上都少不了各種各樣的物聯網設備。

除MQTT協議外,以下協議也是常見的工業協議:

  • OPC UA
  • Modbus TCP /RTU
  • PROFINET
  • RS232/RS485

4. MQTT的服務質量

MQTT支持三種消息發佈服務質量(QoS):

  • 至多一次”(QoS==0)
    消息發佈完全依賴底層 TCP/IP 網絡。會發生消息丟失或重複。這一級別可用於如下情況,環境傳感器數據,丟失一次讀記錄無所謂,因爲不久後還會有第二次發送。
  • 至少一次”(QoS==1)
    確保消息到達,但消息重複可能會發生。
  • 只有一次”(QoS==2)
    確保消息到達一次。這一級別可用於如下情況,在計費系統中,消息重複或丟失會導致不正確的結果。小型傳輸,開銷很小(固定長度的頭部是 2 字節),協議交換最小化,以降低網絡流量。

5. 常見的MQTT服務器

  • Apache Apollo
  • Mosquitto
  • Apache ActiveMQ
  • RabbitMQ
  • EMQTT
    在以上常見的MQTT服務器中,emqtt,併發最高,但cpu佔用較高,穩定性高,但是消息發送較慢。moqtuitto,發送消息快,穩定性高,cpu佔用很少,併發比較高。其它的穩定性不太高

6. MQTT實現方式

實現MQTT協議需要客戶端和服務器端通訊完成,在通訊過程中,MQTT協議中有三種身份:發佈者(Publish)、代理(Broker)(服務器)、訂閱者(Subscribe)。其中,消息的發佈者和訂閱者都是客戶端,消息代理是服務器,消息發佈者可以同時是訂閱者。

白話MQTT是個啥

MQTT傳輸的消息分爲:主題(Topic)和負載(payload)兩部分:

(1)Topic,可以理解爲消息的類型,訂閱者訂閱(Subscribe)後,就會收到該主題的消息內容(payload);

(2)payload,可以理解爲消息的內容,是指訂閱者具體要使用的內容。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章