分布式消息服務MQTT是面向移動互聯網以及物聯網領域的輕量級消息中間件,擴展支持MQTT、MQTT-SN、CoAP、LwM2M或私有TCP協議等主流通信協議。可以在有限的資源條件下,為連接遠程設備提供實時可靠的消息服務并支持數據高效分類存儲、再處理,實現終端設備與云端應用互通。
產品示意圖
分布式消息服務MQTT的通信是通過基于主題(Topic)的發布/訂閱方式來實現的,Broker用來進行消息的存儲和轉發,發布方和訂閱方通過中間方Broker而無直接連接來進行解耦。一次典型的 MQTT 消息通信流程如下所示:

- 發布方(Publisher)連接到Broker;
- 訂閱方(Subscriber)連接到Broker,并訂閱主題Topic1;
- 發布方(Publisher)發送給Broker一條消息,主題為Topic1;
- Broker收到了發布方的消息,發現訂閱方(Subscriber)訂閱了Topic1,然后將消息轉發給訂閱方(Subscriber);
- 訂閱方從Broker接收該消息。
MQTT通過訂閱與發布模型對消息的發布方和訂閱方進行解耦后,發布方在發布消息時并不需要訂閱方也連接到Broker,只要訂閱方之前訂閱過相應主題,那么它在連接到Broker之后就可以收到發布方在它離線期間發布的消息。我們可以稱這種消息為離線消息。
核心概念
MQTT是一種輕量級的通信協議,廣泛用于物聯網(IoT)等領域,具有高效、可靠、低開銷的特點。以下是MQTT核心概念總結:
- Broker(服務器) : MQTT協議中的服務端,負責管理連接、接收和轉發消息,處理訂閱和取消訂閱請求。它充當中間人,將消息從發布者傳遞給訂閱者。
- Client(客戶端): 使用MQTT協議的程序或設備,可以是傳感器、嵌入式設備、服務器等。客戶端與Broker建立連接,發送和接收數據,訂閱或取消訂閱主題。
- Message(消息): MQTT協議中傳輸的數據單元,通常包含消息內容以及與之相關的主題名稱和服務質量等信息。
- Topic(主題): 主題用于標識消息的分類或關聯。在發布消息時,消息與主題相關聯,告訴Broker消息應該發送到哪個主題。在訂閱消息時,客戶端指定感興趣的主題,Broker會將匹配的消息發送給訂閱者。
- Publish(發布): 客戶端向Broker發送消息的過程。發布消息時需要指定主題和服務質量(QoS),Broker將消息轉發給訂閱了相同主題的其他客戶端。
- Subscribe(訂閱): 客戶端訂閱特定主題的過程。客戶端告訴Broker它對哪個主題感興趣,一旦有消息發送到該主題,Broker會將消息傳遞給訂閱者。取消訂閱過程稱為Unsubscribe。
- QoS(服務質量): 用于控制消息可靠性傳遞的參數。
MQTT協議的靈活性和可定制性使其成為許多IoT應用的理想選擇,能夠適應不同的通信需求和資源限制。
產品優勢
分布式消息服務MQTT具有協議豐富、安全可靠、低成本高性能、消息互通等優勢,適用于大規模分布式系統中的消息傳遞和處理場景。
- 協議豐富: 兼容支持原生多種標準協議,如MQTT、MQTT-SN、CoAP、LwM2M;兼容任何支持MQTT協議的 SDK覆蓋絕大多數移動端開發平臺及開發語言。
- 安全可靠: 數據安全,支持SSL加密通信,提供身份認證,數據傳輸更安全可靠。
- 低成本高性能: 穩定承載大規模終端設備連接,資源占用少;消息路由快速低延時,單集群支持百萬規模的路由。
更多信息請參見產品優勢。
應用場景
分布式消息服務MQTT可以用于許多應用場景,其靈活性和輕量級特性使其適用于各種需要實時消息傳輸和發布/訂閱模型的應用,如物聯網通信、遠程監控及控制、傳感器數據采集等。
物聯網(IoT)通信
MQTT廣泛用于連接和管理大規模的物聯網設備。它允許傳感器、嵌入式設備和其他物聯網終端之間進行實時數據通信,以監測環境、收集數據和實現智能控制。
遠程監控和控制
MQTT可用于遠程監控和控制系統,如監控能源設備、工業自動化、智能家居系統等。它使操作員能夠實時監測設備狀態,同時可以通過發布命令來實現設備控制。
傳感器數據采集
MQTT用于將傳感器數據從分布式傳感器網絡傳送到數據中心或云平臺,以進行分析和處理。這對于監測環境、天氣預報、農業數據收集等非常有用。
更多信息請參見應用場景。