MQTT
什麼是 MQTT?在智慧製造中實現大量即時資料交換
什麼是 MQTT?在智慧製造中實現大量即時資料交換
什麼是 MQTT?在智慧製造中實現大量即時資料交換
前言:
MQTT(Message Queuing Telemetry Transport)是一種輕量級、發布/訂閱(Publish/Subscribe)架構的訊息傳輸協定,主要用於物聯網(IoT)、IIoT、智慧製造與設備之間,可以透過 Broker 傳遞即時資料,而不需要彼此直接連線。
在智慧工廠中,可以把 MQTT 放在設備資料與上層系統之間,是工廠 OT 與 IT 系統之間的重要資料傳輸方式之一。傳統設備整合時,每台設備都要跟不同系統建立連線,設備越多,系統整合越複雜,而 MQTT 的價值之一,就是降低大量設備與系統之間的點對點整合複雜度。
作者:
製造新觀點
閱讀時間:
38 分鐘
更新日期:
2026 年 9 月 2 日
01
MQTT 的核心運作組件與階層路由
在傳統的 IP 網絡通訊中,資料的傳輸依賴明確的 IP 位址與 Port;但在 MQTT 的世界中,資料的路由完全改由邏輯上的「Topic 階層」來決定。本文將拆解 Publisher、Subscriber、Broker 之間的互動關係,並準確掌握 Topic 通配符(Wildcards)的運作邏輯。協助開發者寫出第一行 MQTT 程式碼、設計合規資料目錄的基礎。
4 大核心運作組件:
Publisher(發布者): 負責採集數據並主動建立 TCP 連線的終端單元(例如. 溫感器、PLC、車載單元),將封包送往指定的 Topic。
Subscriber(訂閱者): 向 Broker 訂閱特定 Topic 的應用端(例如. MES、戰情室看板、資料庫),被動接收來自 Broker 推播的最新數據。
Broker(代理伺服器): 系統的核心中樞軟體,負責維護連線狀態、過濾與比對 Topic,並精準將訊息分發給相應的訂閱者,同時執行鑑權與資安控管。
Topic(主題): 以斜線 / 分割的階層式 UTF-8 字串(例如. factory/area1/line2/vibration),作為訊息路由與過濾的邏輯位址。
3 大運作規則:
階層化命名結構: 採用從大範疇到小細節的樹狀結構劃分,利於企業建立統一的資料字典(Data Dictionary)。
單層通配符(+): 僅匹配特定一層的任意名稱。例如訂閱 factory/+/line2/vibration,可同時接收 area1、area2 等所有區域二號線的振動數據。
多層通配符(#): 必須放置於 Topic 末端,匹配該層級以下的所有子主題。例如訂閱 factory/area1/#,可接收 area1 下屬的所有機台與感測器數據。
總結來說,MQTT 透過 Publisher、Subscriber、Broker 以及 Topic 這四大組件的協調,將繁複的網路通訊簡化為極具條理的樹狀資料路由。這種以「主題」為導向的通訊模式,與傳統硬編碼(Hard-coded)IP 位址不同。對軟體開發者與 SI 而言,透過設計優良的 Topic 階層,企業能夠在不改變底層設備程式碼的前提下,實現資料的分流與權限隔離,為後續的資料採集與數據分析建立基礎。
MQTT 核心架構元件與角色職責對照如下:
架構元件 | 角色定義與運作機制 | 關鍵技術特徵與職責 | 智慧製造/IIoT 實務範例 |
|---|---|---|---|
訊息代理伺服器 (MQTT Broker) | 核心中心節點,負責接收發布者的訊息、進行主題過濾與比對,並轉發給對應的訂閱者。 | 維持客戶端連線、管理主題路由(Topic Routing)、保留訊息(Retained Message)與遺言機制(Will Message)。 | EMQX, HiveMQ, Mosquitto 部署於 Edge Gateway 或雲端中心。 |
發布者 (Publisher) | 產生數據並將特定主題(Topic)的訊息發送至 Broker 的用戶端裝置或軟體。 | 輕量化連線、主動推送(Push Mode)、無須關心訊息最終由誰接收。 | 溫度感測器、PLC 控制器、CNC 機台邊緣閘道器。 |
訂閱者 (Subscriber) | 向 Broker 訂閱感興趣的主題,並實時接收該主題下最新數據的用戶端。 | 支援單一或萬用字元(#/+)多主題訂閱、非阻塞監聽機制。 | MES 數據採集模組、SCADA 戰情看板、時序資料庫 (TSDB)。 |
主題階層 (Topic Hierarchy) | 使用斜線(/)分層的字串標籤,用於引導與過濾訊息路由的方向。 | 語意化命名、階層式目錄結構、支援萬用字元過濾。 | factory1/workshopA/cnc01/temperature |
01
MQTT 的核心運作組件與階層路由
在傳統的 IP 網絡通訊中,資料的傳輸依賴明確的 IP 位址與 Port;但在 MQTT 的世界中,資料的路由完全改由邏輯上的「Topic 階層」來決定。本文將拆解 Publisher、Subscriber、Broker 之間的互動關係,並準確掌握 Topic 通配符(Wildcards)的運作邏輯。協助開發者寫出第一行 MQTT 程式碼、設計合規資料目錄的基礎。
4 大核心運作組件:
Publisher(發布者): 負責採集數據並主動建立 TCP 連線的終端單元(例如. 溫感器、PLC、車載單元),將封包送往指定的 Topic。
Subscriber(訂閱者): 向 Broker 訂閱特定 Topic 的應用端(例如. MES、戰情室看板、資料庫),被動接收來自 Broker 推播的最新數據。
Broker(代理伺服器): 系統的核心中樞軟體,負責維護連線狀態、過濾與比對 Topic,並精準將訊息分發給相應的訂閱者,同時執行鑑權與資安控管。
Topic(主題): 以斜線 / 分割的階層式 UTF-8 字串(例如. factory/area1/line2/vibration),作為訊息路由與過濾的邏輯位址。
3 大運作規則:
階層化命名結構: 採用從大範疇到小細節的樹狀結構劃分,利於企業建立統一的資料字典(Data Dictionary)。
單層通配符(+): 僅匹配特定一層的任意名稱。例如訂閱 factory/+/line2/vibration,可同時接收 area1、area2 等所有區域二號線的振動數據。
多層通配符(#): 必須放置於 Topic 末端,匹配該層級以下的所有子主題。例如訂閱 factory/area1/#,可接收 area1 下屬的所有機台與感測器數據。
總結來說,MQTT 透過 Publisher、Subscriber、Broker 以及 Topic 這四大組件的協調,將繁複的網路通訊簡化為極具條理的樹狀資料路由。這種以「主題」為導向的通訊模式,與傳統硬編碼(Hard-coded)IP 位址不同。對軟體開發者與 SI 而言,透過設計優良的 Topic 階層,企業能夠在不改變底層設備程式碼的前提下,實現資料的分流與權限隔離,為後續的資料採集與數據分析建立基礎。
MQTT 核心架構元件與角色職責對照如下:
架構元件 | 角色定義與運作機制 | 關鍵技術特徵與職責 | 智慧製造/IIoT 實務範例 |
|---|---|---|---|
訊息代理伺服器 (MQTT Broker) | 核心中心節點,負責接收發布者的訊息、進行主題過濾與比對,並轉發給對應的訂閱者。 | 維持客戶端連線、管理主題路由(Topic Routing)、保留訊息(Retained Message)與遺言機制(Will Message)。 | EMQX, HiveMQ, Mosquitto 部署於 Edge Gateway 或雲端中心。 |
發布者 (Publisher) | 產生數據並將特定主題(Topic)的訊息發送至 Broker 的用戶端裝置或軟體。 | 輕量化連線、主動推送(Push Mode)、無須關心訊息最終由誰接收。 | 溫度感測器、PLC 控制器、CNC 機台邊緣閘道器。 |
訂閱者 (Subscriber) | 向 Broker 訂閱感興趣的主題,並實時接收該主題下最新數據的用戶端。 | 支援單一或萬用字元(#/+)多主題訂閱、非阻塞監聽機制。 | MES 數據採集模組、SCADA 戰情看板、時序資料庫 (TSDB)。 |
主題階層 (Topic Hierarchy) | 使用斜線(/)分層的字串標籤,用於引導與過濾訊息路由的方向。 | 語意化命名、階層式目錄結構、支援萬用字元過濾。 | factory1/workshopA/cnc01/temperature |
02
MQTT 發布/訂閱架構的機制
發布/訂閱(Publish/Subscribe)模式在面對數萬個連線節點時,是如何從根本上解決傳統 Request-Response 模式下的傳輸瓶頸?
傳統的 HTTP 請求或 Socket 直連架構,傳送端與接收端之間存在著依賴關係,一旦接收端伺服器過載或斷線,傳送端便會被卡死或拋出例外(Exception)。MQTT 的 Pub/Sub 架構透過導入 Broker 中介者,建立了彈性的「鬆散聯結(Loose Coupling)」體系。
3 大核心分離機制:
空間分離(Space Decoupling): 發布者與訂閱者完全無須知道對方的實體 IP 位址、通訊埠或地理位置,雙方僅透過對 Broker 與 Topic 的信任完成資料對接。
時間分離(Time Decoupling): 發布者與訂閱者無須同時處於線上狀態。透過 Broker 的「保留訊息(Retained Messages)」或離線 session 佇列,訂閱者可以在上線後補收歷史數據。
同步分離(Synchronization Decoupling): 發布者的訊息發送過程為非同步(Asynchronous)執行。端點設備將數據拋給 Broker 後即可立即釋放 CPU 與記憶體資源,繼續執行下一次採集,無須停滯等待回應。
3 大設計優勢:
消除輪詢(Polling)帶來的資源浪費: 改採事件驅動(Event-driven)的推播機制,接收端僅在有新數據時才被動接收,大幅降低伺服器 CPU 負擔與流量開銷。
極佳的彈性擴充能力(Horizontal Scalability): 當後端需要增加新的數據分析模組或備份資料庫時,只需新增一個訂閱者即可,完全不影響前端感測器的運作。
有效緩衝流量高峰(Traffic Shaving): Broker 能作為流量緩衝池,結合離線 QoS 佇列,避免突發的大量感測器數據直接衝垮後端的業務資料庫。
透過在空間、時間與同步機制上切斷發送端與接收端的直接連結,MQTT 克服了傳統網絡架構在面對海量物聯網設備時的僵化與易碎性。對於大型物聯網系統而言,深入理解 Pub/Sub 模式的分離,代表掌握了建構高彈性、高可用性(HA)雲端架構的入門。這種分離特性讓系統具備橫向擴充能力,也讓企業的微服務(Microservices)轉型與實時數據流處理(Stream Processing)預留了無縫對接的架構彈性。
02
MQTT 發布/訂閱架構的機制
發布/訂閱(Publish/Subscribe)模式在面對數萬個連線節點時,是如何從根本上解決傳統 Request-Response 模式下的傳輸瓶頸?
傳統的 HTTP 請求或 Socket 直連架構,傳送端與接收端之間存在著依賴關係,一旦接收端伺服器過載或斷線,傳送端便會被卡死或拋出例外(Exception)。MQTT 的 Pub/Sub 架構透過導入 Broker 中介者,建立了彈性的「鬆散聯結(Loose Coupling)」體系。
3 大核心分離機制:
空間分離(Space Decoupling): 發布者與訂閱者完全無須知道對方的實體 IP 位址、通訊埠或地理位置,雙方僅透過對 Broker 與 Topic 的信任完成資料對接。
時間分離(Time Decoupling): 發布者與訂閱者無須同時處於線上狀態。透過 Broker 的「保留訊息(Retained Messages)」或離線 session 佇列,訂閱者可以在上線後補收歷史數據。
同步分離(Synchronization Decoupling): 發布者的訊息發送過程為非同步(Asynchronous)執行。端點設備將數據拋給 Broker 後即可立即釋放 CPU 與記憶體資源,繼續執行下一次採集,無須停滯等待回應。
3 大設計優勢:
消除輪詢(Polling)帶來的資源浪費: 改採事件驅動(Event-driven)的推播機制,接收端僅在有新數據時才被動接收,大幅降低伺服器 CPU 負擔與流量開銷。
極佳的彈性擴充能力(Horizontal Scalability): 當後端需要增加新的數據分析模組或備份資料庫時,只需新增一個訂閱者即可,完全不影響前端感測器的運作。
有效緩衝流量高峰(Traffic Shaving): Broker 能作為流量緩衝池,結合離線 QoS 佇列,避免突發的大量感測器數據直接衝垮後端的業務資料庫。
透過在空間、時間與同步機制上切斷發送端與接收端的直接連結,MQTT 克服了傳統網絡架構在面對海量物聯網設備時的僵化與易碎性。對於大型物聯網系統而言,深入理解 Pub/Sub 模式的分離,代表掌握了建構高彈性、高可用性(HA)雲端架構的入門。這種分離特性讓系統具備橫向擴充能力,也讓企業的微服務(Microservices)轉型與實時數據流處理(Stream Processing)預留了無縫對接的架構彈性。
03
IBM 創立至 OASIS 標準化演進
為什麼 1999 年由 IBM 為遠端油管監控設計的私有協定,可以在 25 年後搖身一變成為全球物聯網與智慧製造領域最通用的開放標準?
MQTT 在誕生的早期,面對的是苛刻的客觀條件,計算能力微弱的單晶片、高昂且不穩定的衛星頻寬,以及電力受限的遠端作業環境。這些限制使 MQTT 精簡、高連線率與低功耗的 DNA,並推動其從企業私有規格走向國際開源標準。
3 大發展歷史里程碑:
1999 年(IBM 與 Arcom 研發): Andy Stanford-Clark(IBM)與 Arlen Nipper(Arcom)為油氣管線監控專案合作開發了 MQTT 初始版本,主打低頻寬與低資源消耗。
2010 年(IBM 開放無償授權): IBM 發布 MQTT v3.1 免費規範,並將原始碼貢獻給 Eclipse 基金會(Paho 專案),極大地推動了社群發展。
2014 年起(OASIS 與 ISO/IEC 國際標準化): OASIS 正式採納 MQTT 3.1.1 為標準;隨後 ISO/IEC 20922 將其頒布為國際標準,2019 年進一步發布了具備更強功能的 MQTT v5.0。
4 個核心設計:
極致壓縮標頭(Minimal Header Overhead): 封包標頭最少僅 2 位元組(Bytes),將通訊過程中的有效載荷(Payload)比率提升,大幅地節省頻寬費用。
適應極端不可靠網路(Unreliable Networks): 內建 QoS(服務質量)與心跳包(Keep Alive)機制,確保在網路頻寬狹窄、高延遲或頻繁斷線時仍能穩定運作。
保護終端硬體資源(Low Power & CPU): 最小化 CPU 運算負擔與記憶體佔用(RAM/Flash 需求極低),適合部署於低功耗感測器與嵌入式晶片。
負載中立與彈性(Payload Agnostic): 對發送的數據內容不作任何格式限制,無論是 JSON、XML、二進位影像還是自訂 Protocol Buffers,皆可原樣傳輸。
當初為環境設定的四大設計初衷,簡單化標頭、網路適應性、低功耗與載荷中立,恰好完美契合了現代物聯網爆炸性成長的需求。對企業而言,選擇 MQTT 代表選中了經過數十年實戰檢驗且具備專業機構背書的技術體系。理解其歷史脈絡,能讓開發團隊在設計系統時更好地遵循其「輕量靈活」的核心,避免將過多沉重的負載塞入傳輸層,進而充分發揮 MQTT 的原創設計優勢。
03
IBM 創立至 OASIS 標準化演進
為什麼 1999 年由 IBM 為遠端油管監控設計的私有協定,可以在 25 年後搖身一變成為全球物聯網與智慧製造領域最通用的開放標準?
MQTT 在誕生的早期,面對的是苛刻的客觀條件,計算能力微弱的單晶片、高昂且不穩定的衛星頻寬,以及電力受限的遠端作業環境。這些限制使 MQTT 精簡、高連線率與低功耗的 DNA,並推動其從企業私有規格走向國際開源標準。
3 大發展歷史里程碑:
1999 年(IBM 與 Arcom 研發): Andy Stanford-Clark(IBM)與 Arlen Nipper(Arcom)為油氣管線監控專案合作開發了 MQTT 初始版本,主打低頻寬與低資源消耗。
2010 年(IBM 開放無償授權): IBM 發布 MQTT v3.1 免費規範,並將原始碼貢獻給 Eclipse 基金會(Paho 專案),極大地推動了社群發展。
2014 年起(OASIS 與 ISO/IEC 國際標準化): OASIS 正式採納 MQTT 3.1.1 為標準;隨後 ISO/IEC 20922 將其頒布為國際標準,2019 年進一步發布了具備更強功能的 MQTT v5.0。
4 個核心設計:
極致壓縮標頭(Minimal Header Overhead): 封包標頭最少僅 2 位元組(Bytes),將通訊過程中的有效載荷(Payload)比率提升,大幅地節省頻寬費用。
適應極端不可靠網路(Unreliable Networks): 內建 QoS(服務質量)與心跳包(Keep Alive)機制,確保在網路頻寬狹窄、高延遲或頻繁斷線時仍能穩定運作。
保護終端硬體資源(Low Power & CPU): 最小化 CPU 運算負擔與記憶體佔用(RAM/Flash 需求極低),適合部署於低功耗感測器與嵌入式晶片。
負載中立與彈性(Payload Agnostic): 對發送的數據內容不作任何格式限制,無論是 JSON、XML、二進位影像還是自訂 Protocol Buffers,皆可原樣傳輸。
當初為環境設定的四大設計初衷,簡單化標頭、網路適應性、低功耗與載荷中立,恰好完美契合了現代物聯網爆炸性成長的需求。對企業而言,選擇 MQTT 代表選中了經過數十年實戰檢驗且具備專業機構背書的技術體系。理解其歷史脈絡,能讓開發團隊在設計系統時更好地遵循其「輕量靈活」的核心,避免將過多沉重的負載塞入傳輸層,進而充分發揮 MQTT 的原創設計優勢。
04
MQTT 服務質量的傳遞保證機制
在物聯網應用中,並非所有數據都有相同的價值。環境溫濕度數據失落一筆或許無傷大雅,但機台的故障警報或關鍵的扣款交易指令則絕不能遺失或重複發送。MQTT 內建的 QoS 機制,讓開發者能根據業務情境,在「傳輸效能/頻寬消耗」與「數據可靠性」之間進行準確的評估與設定。
3 種 QoS 服務質量等級機制:
QoS 0:最多一次(At most once / Fire and Forget), 訊息發送後即不管結果,不進行確認(ACK)或重試。訊息傳送依賴底層 TCP 網路,可能因網路波動而遺失,但傳輸效率最高。
QoS 1:至少一次(At least once), 確保訊息至少到達一次。發送端發出訊息後必須收到接收端的 PUBACK 確認封包;若逾時未收到則會重複發送,可能導致接收端收到重複訊息。
QoS 2:恰好一次(Exactly once), 透過嚴謹的四階段握手(PUBLISH > PUBREC > PUBREL > PUBCOMP),確保訊息不遺失且絕不重複,但傳輸延遲與網路開銷最大。
4 個典型的 QoS 場景:
選用 QoS 0: 高頻率、高容錯的感測器數據採集(例如. 每秒上報一次的廠房環境溫濕度、車輛 GPS 即時定位軌跡)。
選用 QoS 1: 絕不能遺失但允許重複處理的關鍵狀態通知(例如. 機台故障警報、生產線計數更新、系統日誌上報;通常結合接收端去重邏輯)。
選用 QoS 2: 對數據準確性有極致要求的控制與交易指令(例如. 遠端 PLC 啟動指令、自動化倉儲扣款動作、關鍵參數寫入)。
動態 QoS 設定: MQTT 允許發布者與訂閱者分別指定 QoS 等級,最終訊息傳遞品質以兩者中較低者為準。
總結來說,MQTT 的 QoS 機制是保障物聯網數據可靠性的基礎,透過 QoS 0、1、2 三個等級的精細劃分,MQTT 在靈活性上遠勝其他傳統協定,讓使用者能根據數據價值自由切換傳輸策略。我們認為,過度追求最高等級的 QoS 2 並非明智之舉,因為額外的四階段握手會帶來顯著的網路延遲與 Broker 記憶體負擔。合理的做法是實行「數據分級管理」,常態性高頻感測數據使用 QoS 0,關鍵警報採用 QoS 1 搭配業務端去重(Idempotency),僅有核心控制指令才啟用 QoS 2。這種精細化的配置能在確保系統絕對安全的同時,維持網路傳輸效能。
MQTT 三大服務質量等級 (Quality of Service, QoS) 比較對照表:
QoS 等級 | 保證服務機制 | 握手與傳輸細節 (Handshake Process) | 適用情境與現場建議 |
|---|---|---|---|
QoS 0 (At most once) | 最多交付一次 (至多一次 / 發後即忘) | 發送端僅發送一次 PUBLISH 封包,不進行確認,可能因網路波動而遺失訊息。開銷最小。 | 高頻率且非關鍵數據,如每秒傳送的溫度、振動數據(遺失一筆不影響總體趨勢)。 |
QoS 1 (At least once) | 至少交付一次 (至少一次 / 保證到達) | 發送端發送 PUBLISH 後等待接收端回覆 PUBACK,若未收到則重發,保證到達但可能重複。 | 關鍵狀態變更、警報訊息(Alarm Codes),允許接收端做重複數據清洗。 |
QoS 2 (Exactly once) | 恰好交付一次 (精準一次 / 絕不重複) | 四階段握手(PUBLISH > PUBREC > PUBREL > PUBCOMP),確保訊息既不遺失也不重複。開銷最高。 | 金融交易、生產工單計數、嚴格資產轉移等不可重複或遺失的關鍵系統。 |
04
MQTT 服務質量的傳遞保證機制
在物聯網應用中,並非所有數據都有相同的價值。環境溫濕度數據失落一筆或許無傷大雅,但機台的故障警報或關鍵的扣款交易指令則絕不能遺失或重複發送。MQTT 內建的 QoS 機制,讓開發者能根據業務情境,在「傳輸效能/頻寬消耗」與「數據可靠性」之間進行準確的評估與設定。
3 種 QoS 服務質量等級機制:
QoS 0:最多一次(At most once / Fire and Forget), 訊息發送後即不管結果,不進行確認(ACK)或重試。訊息傳送依賴底層 TCP 網路,可能因網路波動而遺失,但傳輸效率最高。
QoS 1:至少一次(At least once), 確保訊息至少到達一次。發送端發出訊息後必須收到接收端的 PUBACK 確認封包;若逾時未收到則會重複發送,可能導致接收端收到重複訊息。
QoS 2:恰好一次(Exactly once), 透過嚴謹的四階段握手(PUBLISH > PUBREC > PUBREL > PUBCOMP),確保訊息不遺失且絕不重複,但傳輸延遲與網路開銷最大。
4 個典型的 QoS 場景:
選用 QoS 0: 高頻率、高容錯的感測器數據採集(例如. 每秒上報一次的廠房環境溫濕度、車輛 GPS 即時定位軌跡)。
選用 QoS 1: 絕不能遺失但允許重複處理的關鍵狀態通知(例如. 機台故障警報、生產線計數更新、系統日誌上報;通常結合接收端去重邏輯)。
選用 QoS 2: 對數據準確性有極致要求的控制與交易指令(例如. 遠端 PLC 啟動指令、自動化倉儲扣款動作、關鍵參數寫入)。
動態 QoS 設定: MQTT 允許發布者與訂閱者分別指定 QoS 等級,最終訊息傳遞品質以兩者中較低者為準。
總結來說,MQTT 的 QoS 機制是保障物聯網數據可靠性的基礎,透過 QoS 0、1、2 三個等級的精細劃分,MQTT 在靈活性上遠勝其他傳統協定,讓使用者能根據數據價值自由切換傳輸策略。我們認為,過度追求最高等級的 QoS 2 並非明智之舉,因為額外的四階段握手會帶來顯著的網路延遲與 Broker 記憶體負擔。合理的做法是實行「數據分級管理」,常態性高頻感測數據使用 QoS 0,關鍵警報採用 QoS 1 搭配業務端去重(Idempotency),僅有核心控制指令才啟用 QoS 2。這種精細化的配置能在確保系統絕對安全的同時,維持網路傳輸效能。
MQTT 三大服務質量等級 (Quality of Service, QoS) 比較對照表:
QoS 等級 | 保證服務機制 | 握手與傳輸細節 (Handshake Process) | 適用情境與現場建議 |
|---|---|---|---|
QoS 0 (At most once) | 最多交付一次 (至多一次 / 發後即忘) | 發送端僅發送一次 PUBLISH 封包,不進行確認,可能因網路波動而遺失訊息。開銷最小。 | 高頻率且非關鍵數據,如每秒傳送的溫度、振動數據(遺失一筆不影響總體趨勢)。 |
QoS 1 (At least once) | 至少交付一次 (至少一次 / 保證到達) | 發送端發送 PUBLISH 後等待接收端回覆 PUBACK,若未收到則重發,保證到達但可能重複。 | 關鍵狀態變更、警報訊息(Alarm Codes),允許接收端做重複數據清洗。 |
QoS 2 (Exactly once) | 恰好交付一次 (精準一次 / 絕不重複) | 四階段握手(PUBLISH > PUBREC > PUBREL > PUBCOMP),確保訊息既不遺失也不重複。開銷最高。 | 金融交易、生產工單計數、嚴格資產轉移等不可重複或遺失的關鍵系統。 |
05
WSS 的技術架構與實時監控
如何直接從瀏覽器(Browser)或 Web 應用程式建立與 MQTT Broker 的長連線,實現零延遲的即時數據推播,而無需經過繁重的後端 API 轉發?
傳統的 MQTT 協定直接運行在 TCP 介面(預設埠 1883)之上,然而瀏覽器基於安全限制,無法直接建立原生的 TCP Socket 連線。為了讓前端網頁能無縫融入 MQTT 生態系,將 MQTT 封包封裝於 WebSocket(WS/WSS,預設埠 8083/8084)之上的技術應運而生。這使得 Web 介面能夠直接作為 MQTT 的訂閱者,簡化了實時控制面板的開發複雜度。
MQTT Over WebSocket(WSS)的 3 大技術架構解析:
封包雙重封裝機制: 將標準 MQTT 的控制封包作為 Data Frame 嵌入到 WebSocket 協定框架中,發揮 WebSocket 的長連線優勢與 MQTT 的資訊路由優勢。
安全加密傳輸(WSS): 透過 TLS/SSL 加密(WebSocket Secure),預設使用 443 或 8084 埠,有效穿透企業防火牆與代理伺服器(Proxy),防止數據遭中途監聽。
瀏覽器原生 JavaScript 庫支援: 利用 Paho JavaScript 或 MQTT.js 等前端 SDK,瀏覽器可直接建立連線、發布訊息與訂閱 Topic。
WSS 在 Web 端實時監控中的 4 個核心應用:
Web SCADA 與智慧工廠即時戰情室: 現場機台數據透過 Broker 動態推播至前端網頁,實現即時板數據刷空與動態圖表重整。
跨平台移動端 Web App 遠端控制: 透過手機瀏覽器或 PWA 應用,直接發送 MQTT 指令遙控遠端智慧設備。
減少後端伺服器負擔(Bypass Backend Server): 前端直接訂閱 Broker,無需經過應用伺服器(App Server)進行二次輪詢或轉發,大幅降低後端 CPU 與頻寬開銷。
智慧建築與數位分身(Digital Twin)3D 視覺化: 將即時 MQTT 數據流直接注入 Three.js 等 WebGL 引擎中,呈現動態 3D 工廠運作狀態。
歸納而言,MQTT Over WebSocket(WSS)允許瀏覽器化身為正規的 MQTT 客戶端,使動態數據能以低延遲直接從底層感測器串流至使用者眼前的螢幕上。對於實現智慧工廠戰情室或 Web SCADA 的開發團隊而言,導入 MQTT WSS 架構是提升使用者體驗與降本增效的工具。藉由 WSS 的加密保護與穿透能力,企業能在確保資訊安全的前提下,構建出具備高度反應性、跨平台且無需頻繁刷新網頁的實時監控系統。
05
WSS 的技術架構與實時監控
如何直接從瀏覽器(Browser)或 Web 應用程式建立與 MQTT Broker 的長連線,實現零延遲的即時數據推播,而無需經過繁重的後端 API 轉發?
傳統的 MQTT 協定直接運行在 TCP 介面(預設埠 1883)之上,然而瀏覽器基於安全限制,無法直接建立原生的 TCP Socket 連線。為了讓前端網頁能無縫融入 MQTT 生態系,將 MQTT 封包封裝於 WebSocket(WS/WSS,預設埠 8083/8084)之上的技術應運而生。這使得 Web 介面能夠直接作為 MQTT 的訂閱者,簡化了實時控制面板的開發複雜度。
MQTT Over WebSocket(WSS)的 3 大技術架構解析:
封包雙重封裝機制: 將標準 MQTT 的控制封包作為 Data Frame 嵌入到 WebSocket 協定框架中,發揮 WebSocket 的長連線優勢與 MQTT 的資訊路由優勢。
安全加密傳輸(WSS): 透過 TLS/SSL 加密(WebSocket Secure),預設使用 443 或 8084 埠,有效穿透企業防火牆與代理伺服器(Proxy),防止數據遭中途監聽。
瀏覽器原生 JavaScript 庫支援: 利用 Paho JavaScript 或 MQTT.js 等前端 SDK,瀏覽器可直接建立連線、發布訊息與訂閱 Topic。
WSS 在 Web 端實時監控中的 4 個核心應用:
Web SCADA 與智慧工廠即時戰情室: 現場機台數據透過 Broker 動態推播至前端網頁,實現即時板數據刷空與動態圖表重整。
跨平台移動端 Web App 遠端控制: 透過手機瀏覽器或 PWA 應用,直接發送 MQTT 指令遙控遠端智慧設備。
減少後端伺服器負擔(Bypass Backend Server): 前端直接訂閱 Broker,無需經過應用伺服器(App Server)進行二次輪詢或轉發,大幅降低後端 CPU 與頻寬開銷。
智慧建築與數位分身(Digital Twin)3D 視覺化: 將即時 MQTT 數據流直接注入 Three.js 等 WebGL 引擎中,呈現動態 3D 工廠運作狀態。
歸納而言,MQTT Over WebSocket(WSS)允許瀏覽器化身為正規的 MQTT 客戶端,使動態數據能以低延遲直接從底層感測器串流至使用者眼前的螢幕上。對於實現智慧工廠戰情室或 Web SCADA 的開發團隊而言,導入 MQTT WSS 架構是提升使用者體驗與降本增效的工具。藉由 WSS 的加密保護與穿透能力,企業能在確保資訊安全的前提下,構建出具備高度反應性、跨平台且無需頻繁刷新網頁的實時監控系統。
06
AI 結合 MQTT 數據流的應用
當大語言模型(LLM)與自主 AI Agent 走向實體世界(Embodied AI)時,AI 該如何即時感知並控制邊端設備?MQTT 作為物聯網的「神經網絡」,該如何與 AI 進行整合?
傳統的 AI 模型多半運行於離線或批次處理模式(Batch Processing),無法處理即時發生的邊緣事件。然而,將 AI Agent 直接連接至 MQTT Broker,讓 AI 成為一個特殊的「超級訂閱者與發布者」,能使 AI 獲得即時吞吐邊緣數據流、自適應推理並自主下發控制指令的能力。
生成式 AI / AI Agent 的 3 大對焦:
對焦超級訂閱者(AI Agent as Subscriber): AI Agent 作為後端服務,直接訂閱全廠關鍵 Topic 數據流(例如. factory/+/vibration),進行實時異常檢測與動態語意分析。
對焦自動化發布者(AI Agent as Publisher): 當 AI Agent 完成推論後,將自然語言決策轉化為結構化 JSON 封包,直接發布至控制 Topic(例如. factory/line1/speed/set),實現閉迴路控制。
對焦 Broker 智慧路由與過濾器(Smart Message Broker): 結合向量資料庫與小模型,在 Broker 側實施動態數據清洗、語意摘要與優先級重排,僅將高價值事件拋給雲端大模型。
AI Agent 的 3 個創新應用:
自然語言驅動的即時設備語音控制: 使用者對 AI 喊出:「將二號線擠壓機溫度降低 5 度」,AI Agent 自動理解意圖並翻譯為特定的 MQTT Topic 與 Payload 下發給機台。
邊緣自適應預測性維護(Edge Event-Driven Predictive Maintenance): AI 代理人持續監聽 MQTT 振動與電流數據,一旦發現微小異常模式,立即發起自我診斷並預約保養工單。
多 AI Agent 系統(Multi-Agent)的動產能協調: 每個機台的 AI Agent 透過特定的 MQTT Topic 進行去中心化對話與談判,實時優化動態生產排程。
MQTT 提供了低延遲的數據神經傳輸通道,而 AI Agent 則充當了決策核心,兩者的整合解決了傳統基於規則(Rule-based)系統面對複雜動態環境時的固化問題。將 AI Agent 接入現有的 MQTT 通訊底座投資報酬率高。企業無需重構底層硬體與採購線路,即可透過讓 AI 訂閱既有 MQTT 主題的方式,快速試點智慧診斷與自主控制應用。
06
AI 結合 MQTT 數據流的應用
當大語言模型(LLM)與自主 AI Agent 走向實體世界(Embodied AI)時,AI 該如何即時感知並控制邊端設備?MQTT 作為物聯網的「神經網絡」,該如何與 AI 進行整合?
傳統的 AI 模型多半運行於離線或批次處理模式(Batch Processing),無法處理即時發生的邊緣事件。然而,將 AI Agent 直接連接至 MQTT Broker,讓 AI 成為一個特殊的「超級訂閱者與發布者」,能使 AI 獲得即時吞吐邊緣數據流、自適應推理並自主下發控制指令的能力。
生成式 AI / AI Agent 的 3 大對焦:
對焦超級訂閱者(AI Agent as Subscriber): AI Agent 作為後端服務,直接訂閱全廠關鍵 Topic 數據流(例如. factory/+/vibration),進行實時異常檢測與動態語意分析。
對焦自動化發布者(AI Agent as Publisher): 當 AI Agent 完成推論後,將自然語言決策轉化為結構化 JSON 封包,直接發布至控制 Topic(例如. factory/line1/speed/set),實現閉迴路控制。
對焦 Broker 智慧路由與過濾器(Smart Message Broker): 結合向量資料庫與小模型,在 Broker 側實施動態數據清洗、語意摘要與優先級重排,僅將高價值事件拋給雲端大模型。
AI Agent 的 3 個創新應用:
自然語言驅動的即時設備語音控制: 使用者對 AI 喊出:「將二號線擠壓機溫度降低 5 度」,AI Agent 自動理解意圖並翻譯為特定的 MQTT Topic 與 Payload 下發給機台。
邊緣自適應預測性維護(Edge Event-Driven Predictive Maintenance): AI 代理人持續監聽 MQTT 振動與電流數據,一旦發現微小異常模式,立即發起自我診斷並預約保養工單。
多 AI Agent 系統(Multi-Agent)的動產能協調: 每個機台的 AI Agent 透過特定的 MQTT Topic 進行去中心化對話與談判,實時優化動態生產排程。
MQTT 提供了低延遲的數據神經傳輸通道,而 AI Agent 則充當了決策核心,兩者的整合解決了傳統基於規則(Rule-based)系統面對複雜動態環境時的固化問題。將 AI Agent 接入現有的 MQTT 通訊底座投資報酬率高。企業無需重構底層硬體與採購線路,即可透過讓 AI 訂閱既有 MQTT 主題的方式,快速試點智慧診斷與自主控制應用。
07
MQTT 與 HTTP/RESTful 的差異
我們發現,近期越來越多企業,在成熟通用的 HTTP/RESTful 協定與專為物聯網打造的 MQTT 之間做出明智的技術,以平衡開發成本、傳輸效能與系統維護性。HTTP 是網際網路的基石,具備高普及度與完善的生態系;但在物聯網海量終端傳送微小數據的場景下,HTTP 的 Request-Response 機制、龐大的 Header 開銷與頻繁的 TCP 握手,會帶來資源浪費與延遲。深入對比這兩種協定在不同維度下的優劣勢,是建立高效能物聯網架構不可或缺的前置作業。
MQTT 與 HTTP/RESTful 的 4 大核心差異:
通訊模式: MQTT 協定發布/訂閱(Publish/Subscribe),非同步分離;HTTP / RESTful 協定在請求/回應(Request-Response),同步雙向。
封包標頭開銷: MQTT 協定開銷小(最小僅 2 Bytes Header);HTTP / RESTful 協定開銷大(通常數百 Bytes 至 KB,含 Cookie/User-Agent)。
連線機制: MQTT 協定長連線(Keep-Alive TCP),單次握手持續傳輸;HTTP / RESTful 協定短連線或頻繁 Polling,連線建立與關閉成本高。
網路與電力消耗: MQTT 協定低頻寬與電量需求,適合 battery-powered 設備;HTTP / RESTful 協定頻寬與電量消耗ㄐ高,頻繁輪詢易耗盡電力。
在 IoT 系統中混用 MQTT 與 HTTP 的 3 個混用架構策略:
南北向數據分工: 現場端至邊緣閘道採用 MQTT 進行高頻、輕量化採集;邊緣至雲端 API/微服務採用 HTTP/REST 進行管理與組態下發。
MQTT 作為實時事件流,HTTP 作為靜態檔案傳送: 機台即時狀態與控制指令走 MQTT 管道;大容量日誌檔、韌體更新包(FOTA)與高解析度影像則走 HTTP/HTTPS 通道。
API Gateway 轉譯層(MQTT-to-REST Proxy): 在系統邊界部署 API 閘道器,將外部系統的 RESTful API 請求轉譯為內部的 MQTT 訊息發布,兼顧相容性與內部傳輸效能。
歸納而言,MQTT 與 HTTP 並非非此即彼的對立關係,而是各有側重的互補工具。MQTT 在「高頻率、低延遲、海量端點、限制網路」的物聯網實時數據傳輸中佔有絕對優勢;而 HTTP 則在「大容量檔案傳輸、複雜查詢、網頁請求與跨企業 API 對接」上具備生態便利性。許多企業會採取「分層混用」策略,在工廠內部與現場感測器端全面採用 MQTT 奠定輕量化數據底座,而在對外開放介面與管理後台則保留 RESTful API。這種組合能同時獲得 MQTT 的效能與 HTTP 的通用性。
傳統 HTTP / REST API 與 MQTT 物聯網通訊對照表:
維度 | 傳統 HTTP / REST API (Client-Server) | MQTT 物聯網傳輸協定 (Pub/Sub) |
|---|---|---|
架構模式與驅動方式 | 請求/回應 (Request/Response):客戶端輪詢(Polling),被動獲取數據。 | 發布/訂閱 (Publish/Subscribe):事件驅動(Event-driven),數據主動即時推播。 |
標頭開銷與封包大小 | 標頭大(通常數百位元組至數 KB,包含大量 HTTP Header 文字)。 | 標頭小(最小僅需 2 Bytes 固定標頭),省頻寬與流量。 |
網路與長連線維護 | 短連線居多(每次請求重新握手 TCP/TLS)或 WebSocket 長連線,耗費硬體資源。 | 建立單一 Keep-Alive 長連線,記憶體與 CPU 開銷低,極適合低功耗微控制器 (MCU)。 |
系統聯結度與擴展性 | 高聯結(Client 必須明確知道 Server 的 IP/URL 地址),擴展新接收端困難。 | 高分離(Pub 與 Sub 互不知道對方存在,僅透過 Topic 互動),輕鬆擴展新訂閱系統。 |
07
MQTT 與 HTTP/RESTful 的差異
我們發現,近期越來越多企業,在成熟通用的 HTTP/RESTful 協定與專為物聯網打造的 MQTT 之間做出明智的技術,以平衡開發成本、傳輸效能與系統維護性。HTTP 是網際網路的基石,具備高普及度與完善的生態系;但在物聯網海量終端傳送微小數據的場景下,HTTP 的 Request-Response 機制、龐大的 Header 開銷與頻繁的 TCP 握手,會帶來資源浪費與延遲。深入對比這兩種協定在不同維度下的優劣勢,是建立高效能物聯網架構不可或缺的前置作業。
MQTT 與 HTTP/RESTful 的 4 大核心差異:
通訊模式: MQTT 協定發布/訂閱(Publish/Subscribe),非同步分離;HTTP / RESTful 協定在請求/回應(Request-Response),同步雙向。
封包標頭開銷: MQTT 協定開銷小(最小僅 2 Bytes Header);HTTP / RESTful 協定開銷大(通常數百 Bytes 至 KB,含 Cookie/User-Agent)。
連線機制: MQTT 協定長連線(Keep-Alive TCP),單次握手持續傳輸;HTTP / RESTful 協定短連線或頻繁 Polling,連線建立與關閉成本高。
網路與電力消耗: MQTT 協定低頻寬與電量需求,適合 battery-powered 設備;HTTP / RESTful 協定頻寬與電量消耗ㄐ高,頻繁輪詢易耗盡電力。
在 IoT 系統中混用 MQTT 與 HTTP 的 3 個混用架構策略:
南北向數據分工: 現場端至邊緣閘道採用 MQTT 進行高頻、輕量化採集;邊緣至雲端 API/微服務採用 HTTP/REST 進行管理與組態下發。
MQTT 作為實時事件流,HTTP 作為靜態檔案傳送: 機台即時狀態與控制指令走 MQTT 管道;大容量日誌檔、韌體更新包(FOTA)與高解析度影像則走 HTTP/HTTPS 通道。
API Gateway 轉譯層(MQTT-to-REST Proxy): 在系統邊界部署 API 閘道器,將外部系統的 RESTful API 請求轉譯為內部的 MQTT 訊息發布,兼顧相容性與內部傳輸效能。
歸納而言,MQTT 與 HTTP 並非非此即彼的對立關係,而是各有側重的互補工具。MQTT 在「高頻率、低延遲、海量端點、限制網路」的物聯網實時數據傳輸中佔有絕對優勢;而 HTTP 則在「大容量檔案傳輸、複雜查詢、網頁請求與跨企業 API 對接」上具備生態便利性。許多企業會採取「分層混用」策略,在工廠內部與現場感測器端全面採用 MQTT 奠定輕量化數據底座,而在對外開放介面與管理後台則保留 RESTful API。這種組合能同時獲得 MQTT 的效能與 HTTP 的通用性。
傳統 HTTP / REST API 與 MQTT 物聯網通訊對照表:
維度 | 傳統 HTTP / REST API (Client-Server) | MQTT 物聯網傳輸協定 (Pub/Sub) |
|---|---|---|
架構模式與驅動方式 | 請求/回應 (Request/Response):客戶端輪詢(Polling),被動獲取數據。 | 發布/訂閱 (Publish/Subscribe):事件驅動(Event-driven),數據主動即時推播。 |
標頭開銷與封包大小 | 標頭大(通常數百位元組至數 KB,包含大量 HTTP Header 文字)。 | 標頭小(最小僅需 2 Bytes 固定標頭),省頻寬與流量。 |
網路與長連線維護 | 短連線居多(每次請求重新握手 TCP/TLS)或 WebSocket 長連線,耗費硬體資源。 | 建立單一 Keep-Alive 長連線,記憶體與 CPU 開銷低,極適合低功耗微控制器 (MCU)。 |
系統聯結度與擴展性 | 高聯結(Client 必須明確知道 Server 的 IP/URL 地址),擴展新接收端困難。 | 高分離(Pub 與 Sub 互不知道對方存在,僅透過 Topic 互動),輕鬆擴展新訂閱系統。 |
08
MQTT 推動轉型的優勢與風險
將 MQTT 導入智慧製造領域,能解決傳統工廠的「數據孤島」,實現 OEE 監控、設備預測性維護與自動化排程。然而,隨著 MQTT 單點 Broker 負擔過重、訊息量增加、Topic 命名混亂以及資安威脅等問題的浮現,企業若缺乏嚴謹的規劃,可能讓數位轉型專案陷入技術債的狀況。
4 大核心長期優勢:
打破數據孤島與異質介面壁壘: 搭配 Sparkplug B 規範或 OPC UA,MQTT 能將不同品牌 PLC、感測器數據統一匯流至中央數據湖(Data Lake)。
異構連線擴充性(Scalability): 新建產線或新增感測器時,僅需將數據發布至指定 Topic,無須修改既有系統代碼,縮短擴建工期。
顯著降低廠區網路頻寬與硬體投資成本: 事件驅動(Report-by-Exception)機制僅在數據變動時發送,較傳統輪詢節省高達 80% 的網路頻寬。
加速數位分身(Digital Twin)實時化: 實時數據流源源不絕注入數位模型中,使管理層能在戰情室即時掌握全廠動態。
4 大潛在營運風險:
中央 Broker 單點故障(Single Point of Failure, SPOF)風險: 若未建置高可用(HA)叢集,單一 Broker 宕機將導致全廠數據傳送瞬間癱瘓。
無約束的 Topic 命名導致「Topic 叢林(Topic Chaos)」: 缺乏統一規範時,各部門隨意定義 Topic,造成數據發現與維護困難。
訊息風暴(Message Storm)引發系統崩潰: 當大量設備在網路恢復瞬間同時重連並發送離線數據時,容易衝垮 Broker 與後端資料庫。
明文傳輸與未授權存取帶來的資安危機: 預設設定下 MQTT 封包未加密,且可能缺乏嚴格的 Topic 層級 ACL(存取控制列表),易遭惡意竊聽或非法控機。
總結來說,MQTT 帶來的破除數據孤島、節省頻寬與高擴充性效益,是製造業邁向智慧化不可或缺的基礎;但其帶來的 Broker 單點風險、Topic 混亂與資安隱患,也是管理層必須嚴肅看待的課題。成功的智慧製造可以透過「完善的頂層設計」來化解風險,例如在專案初期即導入 MQTT 高可用叢集、制定嚴格的 Topic 命名規範(例如. 採用 Sparkplug B)、並啟用 TLS 加密與 ACL 存取控制,企業便能在徹底規避營運風險的前提下,完整享有 MQTT 帶來的數位轉型優勢。
MQTT 關鍵機制與特性對照表:
特性名稱 | 運作原理與機制 | 核心解決的問題與價值 | IIoT 工廠實務應用情境 |
|---|---|---|---|
遺言機制 (Last Will and Testament, LWT) | 用戶端連線時向 Broker 預註冊遺言訊息。當用戶端異常斷線(如斷電、網路中斷)時,Broker 自動幫其發布該遺言。 | 即時感知設備離線狀態,解決分散式設備「死機卻無人知曉」的痛點。 | 機台突發斷電時,Broker 自動發送 cnc01/status = "OFFLINE" 通知 SCADA。 |
保留訊息 (Retained Message) | 發布訊息時標記 Retain Flag,Broker 會保留該主題的最後一筆最新訊息,並在新的 Subscriber 訂閱時立即推送。 | 新加入系統的用戶端無須等待下一次發布即可秒級獲得最新狀態。 | 看板系統重啟後,一連線即獲取當前設備的運轉狀態與參數設定。 |
持久會話 (Clean Session / Clean Start) | 客戶端斷線重連時,決定是否保留過往的訂閱紀錄與未收到的 QoS 1/2 訊息佇列。 | 保護短暫網路波動下的數據完整性,避免重連後丟失歷史事件。 | 移動式 AGV 小車穿過 Wi-Fi 盲區後,重連時自動補收盲區期間的控制指令。 |
Sparkplug B 規範 | 基於 MQTT 的工業領域語意規範,定義統一的 Topic 結構、Protobuf 壓縮 payload 與生失效機制(Birth/Death Certificate)。 | 解決傳統 MQTT 負載格式(Payload)無標準、無法即插即用(Plug & Play)的難題。 | 跨品牌 PLC 與 Edge Gateway 統一格式,實現 OT 資料無縫整合至 Cloud/MES。 |
08
MQTT 推動轉型的優勢與風險
將 MQTT 導入智慧製造領域,能解決傳統工廠的「數據孤島」,實現 OEE 監控、設備預測性維護與自動化排程。然而,隨著 MQTT 單點 Broker 負擔過重、訊息量增加、Topic 命名混亂以及資安威脅等問題的浮現,企業若缺乏嚴謹的規劃,可能讓數位轉型專案陷入技術債的狀況。
4 大核心長期優勢:
打破數據孤島與異質介面壁壘: 搭配 Sparkplug B 規範或 OPC UA,MQTT 能將不同品牌 PLC、感測器數據統一匯流至中央數據湖(Data Lake)。
異構連線擴充性(Scalability): 新建產線或新增感測器時,僅需將數據發布至指定 Topic,無須修改既有系統代碼,縮短擴建工期。
顯著降低廠區網路頻寬與硬體投資成本: 事件驅動(Report-by-Exception)機制僅在數據變動時發送,較傳統輪詢節省高達 80% 的網路頻寬。
加速數位分身(Digital Twin)實時化: 實時數據流源源不絕注入數位模型中,使管理層能在戰情室即時掌握全廠動態。
4 大潛在營運風險:
中央 Broker 單點故障(Single Point of Failure, SPOF)風險: 若未建置高可用(HA)叢集,單一 Broker 宕機將導致全廠數據傳送瞬間癱瘓。
無約束的 Topic 命名導致「Topic 叢林(Topic Chaos)」: 缺乏統一規範時,各部門隨意定義 Topic,造成數據發現與維護困難。
訊息風暴(Message Storm)引發系統崩潰: 當大量設備在網路恢復瞬間同時重連並發送離線數據時,容易衝垮 Broker 與後端資料庫。
明文傳輸與未授權存取帶來的資安危機: 預設設定下 MQTT 封包未加密,且可能缺乏嚴格的 Topic 層級 ACL(存取控制列表),易遭惡意竊聽或非法控機。
總結來說,MQTT 帶來的破除數據孤島、節省頻寬與高擴充性效益,是製造業邁向智慧化不可或缺的基礎;但其帶來的 Broker 單點風險、Topic 混亂與資安隱患,也是管理層必須嚴肅看待的課題。成功的智慧製造可以透過「完善的頂層設計」來化解風險,例如在專案初期即導入 MQTT 高可用叢集、制定嚴格的 Topic 命名規範(例如. 採用 Sparkplug B)、並啟用 TLS 加密與 ACL 存取控制,企業便能在徹底規避營運風險的前提下,完整享有 MQTT 帶來的數位轉型優勢。
MQTT 關鍵機制與特性對照表:
特性名稱 | 運作原理與機制 | 核心解決的問題與價值 | IIoT 工廠實務應用情境 |
|---|---|---|---|
遺言機制 (Last Will and Testament, LWT) | 用戶端連線時向 Broker 預註冊遺言訊息。當用戶端異常斷線(如斷電、網路中斷)時,Broker 自動幫其發布該遺言。 | 即時感知設備離線狀態,解決分散式設備「死機卻無人知曉」的痛點。 | 機台突發斷電時,Broker 自動發送 cnc01/status = "OFFLINE" 通知 SCADA。 |
保留訊息 (Retained Message) | 發布訊息時標記 Retain Flag,Broker 會保留該主題的最後一筆最新訊息,並在新的 Subscriber 訂閱時立即推送。 | 新加入系統的用戶端無須等待下一次發布即可秒級獲得最新狀態。 | 看板系統重啟後,一連線即獲取當前設備的運轉狀態與參數設定。 |
持久會話 (Clean Session / Clean Start) | 客戶端斷線重連時,決定是否保留過往的訂閱紀錄與未收到的 QoS 1/2 訊息佇列。 | 保護短暫網路波動下的數據完整性,避免重連後丟失歷史事件。 | 移動式 AGV 小車穿過 Wi-Fi 盲區後,重連時自動補收盲區期間的控制指令。 |
Sparkplug B 規範 | 基於 MQTT 的工業領域語意規範,定義統一的 Topic 結構、Protobuf 壓縮 payload 與生失效機制(Birth/Death Certificate)。 | 解決傳統 MQTT 負載格式(Payload)無標準、無法即插即用(Plug & Play)的難題。 | 跨品牌 PLC 與 Edge Gateway 統一格式,實現 OT 資料無縫整合至 Cloud/MES。 |
09
企業實施 MQTT 的 5 個實施步驟
如何將 MQTT 規範導入傳統工廠?如何解決 MQTT 預設「沒有定義 Payload 格式」所導致的數據解析混亂問題?
在工業領域,使用原生 MQTT 常常會遇到挑戰,因為原生 MQTT 只管傳輸,不限制 Payload 的內容,這導致廠商 A 發 JSON,廠商 B 發二進位,最後在後端造成嚴重的「語意混亂」。為此,Eclipse 基金會推出了專為工業自動化設計的 Sparkplug B 規範。
5 個實施步驟:
現況數據盤點與 Topic 階層規劃:盤點現場設備與定義 Topic 命名規範。梳理全廠 PLC、感測器與軟體系統,制定統一且具備擴充性的 Topic 結構(例如. Region/Plant/Area/Line/Device),禁止無規範發布。
Broker 基礎設施選型與叢集建置:部署高可用與高併發 MQTT Broker。選擇適合企業規模的工業級 Broker(例如. EMQX、HiveMQ、Mosquitto),採用多節點叢集(Cluster)與負載均衡架構,消除單點故障風險。
邊緣端協議轉譯與數據採集:在 OT 邊緣端部署 MQTT Gateway。透過工業閘道器(Edge Gateway)將 Modbus、Profibus、OPC DA 等傳統 OT 協議轉譯為 MQTT 封包,並統一進行本地邊緣過濾。
Payload 格式標準化與狀態管理:導入 Sparkplug B 規範統一 Payload 語意。強制要求 OT 端採用 Sparkplug B 格式封裝數據(使用 Protocol Buffers),實現設備「出生與死亡狀態(NBIRTH/NDEATH)」的自動感知。
IT/OT 數據貫通與應用閉環:對接 IT 側 MES/ERP 與數據湖進行應用擴展。將 Broker 數據流對接至 TimescaleDB/InfluxDB 時序資料庫、Kafka 訊息隊列以及 MES/AI 分析平台,實現數據價值轉化。
Sparkplug B 標準化規範帶來的 3 個關鍵:
統一的 Payload 編碼(Protobuf): 使用 Google Protocol Buffers 二進位壓縮編碼,大幅縮減 Payload 體積,並提供強型別的數據結構定義。
狀態管理與節點死活感知(Birth/Death Certificates): 定義了 NBIRTH、DBIRTH 與 NDEATH 等特定 Topic,讓 IT 系統能即時獲知 OT 設備線上/離線狀態。
自動化數據字典與即插即用(Plug and Produce): 訂閱端接收到 NBIRTH 封包即可自動解析該設備包含哪些測點(Metrics),解決了手動設定數據庫欄位的繁瑣工程。
透過五階段的循序推進,企業能從無序的數據採集走向有序的系統整合;而 Sparkplug B 則補足了原生 MQTT 缺乏語意約束的短板,實現了工業資產的「即插即用」。但回頭來看,MQTT 專案的成敗不在於 Broker 軟體裝得快不快,而在於 Topic 與 Payload 的規範定得嚴不嚴格。
09
企業實施 MQTT 的 5 個實施步驟
如何將 MQTT 規範導入傳統工廠?如何解決 MQTT 預設「沒有定義 Payload 格式」所導致的數據解析混亂問題?
在工業領域,使用原生 MQTT 常常會遇到挑戰,因為原生 MQTT 只管傳輸,不限制 Payload 的內容,這導致廠商 A 發 JSON,廠商 B 發二進位,最後在後端造成嚴重的「語意混亂」。為此,Eclipse 基金會推出了專為工業自動化設計的 Sparkplug B 規範。
5 個實施步驟:
現況數據盤點與 Topic 階層規劃:盤點現場設備與定義 Topic 命名規範。梳理全廠 PLC、感測器與軟體系統,制定統一且具備擴充性的 Topic 結構(例如. Region/Plant/Area/Line/Device),禁止無規範發布。
Broker 基礎設施選型與叢集建置:部署高可用與高併發 MQTT Broker。選擇適合企業規模的工業級 Broker(例如. EMQX、HiveMQ、Mosquitto),採用多節點叢集(Cluster)與負載均衡架構,消除單點故障風險。
邊緣端協議轉譯與數據採集:在 OT 邊緣端部署 MQTT Gateway。透過工業閘道器(Edge Gateway)將 Modbus、Profibus、OPC DA 等傳統 OT 協議轉譯為 MQTT 封包,並統一進行本地邊緣過濾。
Payload 格式標準化與狀態管理:導入 Sparkplug B 規範統一 Payload 語意。強制要求 OT 端採用 Sparkplug B 格式封裝數據(使用 Protocol Buffers),實現設備「出生與死亡狀態(NBIRTH/NDEATH)」的自動感知。
IT/OT 數據貫通與應用閉環:對接 IT 側 MES/ERP 與數據湖進行應用擴展。將 Broker 數據流對接至 TimescaleDB/InfluxDB 時序資料庫、Kafka 訊息隊列以及 MES/AI 分析平台,實現數據價值轉化。
Sparkplug B 標準化規範帶來的 3 個關鍵:
統一的 Payload 編碼(Protobuf): 使用 Google Protocol Buffers 二進位壓縮編碼,大幅縮減 Payload 體積,並提供強型別的數據結構定義。
狀態管理與節點死活感知(Birth/Death Certificates): 定義了 NBIRTH、DBIRTH 與 NDEATH 等特定 Topic,讓 IT 系統能即時獲知 OT 設備線上/離線狀態。
自動化數據字典與即插即用(Plug and Produce): 訂閱端接收到 NBIRTH 封包即可自動解析該設備包含哪些測點(Metrics),解決了手動設定數據庫欄位的繁瑣工程。
透過五階段的循序推進,企業能從無序的數據採集走向有序的系統整合;而 Sparkplug B 則補足了原生 MQTT 缺乏語意約束的短板,實現了工業資產的「即插即用」。但回頭來看,MQTT 專案的成敗不在於 Broker 軟體裝得快不快,而在於 Topic 與 Payload 的規範定得嚴不嚴格。
10
MQTT 架構下的 3 大資安漏洞
MQTT 在帶來高度靈活連線的同時,若直接使用預設配置(未加密的 1883 埠、匿名登入、無 Topic 限制),將使全廠的生產數據與控制權完全曝露於駭客眼前。
在工業 4.0 環境中,MQTT Broker 匯集了全廠最核心的營運數據與控制通道。駭客一旦突破 MQTT 的防線,能竊取商業機密,並透過發布惡意指令直接操控現場實體設備,造成不可逆的破壞。
3 大資安威脅漏洞:
明文傳輸與封包竊聽(Cleartext Transmission): 預設 MQTT 透過 1883 埠進行 TCP 明文傳輸,攻擊者可透過網路側聽(Sniffing)輕鬆擷取敏感的機台數據與登入憑據。
匿名登入與弱口令漏洞(Anonymous Access): 未關閉 Broker 的匿名存取功能,導致任何未經授權的連線皆可自由發布或訂閱全廠訊息。
越權訂閱與控制指令注入(Topic Hijacking): 缺乏 Topic 層級的存取控制列表(ACL),低權限客戶端可訂閱通配符 # 獲取全廠數據,或向控制 Topic 發送惡意指令。
3 重資安防禦體系:
傳輸層 TLS/SSL 強制加密(Transport Security): 禁用 1883 明文埠,強制啟用 8883(MQTT Over TLS)與 8084(WSS)加密埠;針對高安全需求場景導入 X.509 雙向證書認證(mTLS)。
身份驗證與憑證管理(Authentication): 關閉匿名登入,結合 JWT(JSON Web Tokens)、OAuth 2.0 或 LDAP 伺服器進行強身份鑑權,確保連線身分真實可信。
細粒度 Topic 存取控制列表(Authorization / ACL): 實施最小權限原則,依據用戶角色精確劃分 Topic 讀寫權限(例如:機台 A 僅授權發布 factory/line1/machineA/#,無權訂閱其他機台 Topic)。
歸納而言,未經安全加固的 MQTT 架構就像是在網際網路上敞開工廠的大門,隨時可能招致毀滅性的網路攻擊。企業資安團隊必須透過在傳輸層全面啟動 TLS 加密、在連線層實施強身份認證,並在數據層貫徹細粒度的 ACL 權限隔離,能有效封堵明文竊聽與指令注入漏洞。這三重安全防線將確保 MQTT 在提供高效通訊的同時,為企業築起一道資安屏障。
10
MQTT 架構下的 3 大資安漏洞
MQTT 在帶來高度靈活連線的同時,若直接使用預設配置(未加密的 1883 埠、匿名登入、無 Topic 限制),將使全廠的生產數據與控制權完全曝露於駭客眼前。
在工業 4.0 環境中,MQTT Broker 匯集了全廠最核心的營運數據與控制通道。駭客一旦突破 MQTT 的防線,能竊取商業機密,並透過發布惡意指令直接操控現場實體設備,造成不可逆的破壞。
3 大資安威脅漏洞:
明文傳輸與封包竊聽(Cleartext Transmission): 預設 MQTT 透過 1883 埠進行 TCP 明文傳輸,攻擊者可透過網路側聽(Sniffing)輕鬆擷取敏感的機台數據與登入憑據。
匿名登入與弱口令漏洞(Anonymous Access): 未關閉 Broker 的匿名存取功能,導致任何未經授權的連線皆可自由發布或訂閱全廠訊息。
越權訂閱與控制指令注入(Topic Hijacking): 缺乏 Topic 層級的存取控制列表(ACL),低權限客戶端可訂閱通配符 # 獲取全廠數據,或向控制 Topic 發送惡意指令。
3 重資安防禦體系:
傳輸層 TLS/SSL 強制加密(Transport Security): 禁用 1883 明文埠,強制啟用 8883(MQTT Over TLS)與 8084(WSS)加密埠;針對高安全需求場景導入 X.509 雙向證書認證(mTLS)。
身份驗證與憑證管理(Authentication): 關閉匿名登入,結合 JWT(JSON Web Tokens)、OAuth 2.0 或 LDAP 伺服器進行強身份鑑權,確保連線身分真實可信。
細粒度 Topic 存取控制列表(Authorization / ACL): 實施最小權限原則,依據用戶角色精確劃分 Topic 讀寫權限(例如:機台 A 僅授權發布 factory/line1/machineA/#,無權訂閱其他機台 Topic)。
歸納而言,未經安全加固的 MQTT 架構就像是在網際網路上敞開工廠的大門,隨時可能招致毀滅性的網路攻擊。企業資安團隊必須透過在傳輸層全面啟動 TLS 加密、在連線層實施強身份認證,並在數據層貫徹細粒度的 ACL 權限隔離,能有效封堵明文竊聽與指令注入漏洞。這三重安全防線將確保 MQTT 在提供高效通訊的同時,為企業築起一道資安屏障。
分享這篇文章
分享這篇文章




製造問與答
製造問與答
01
如何防止 MQTT 主題格式混亂,實現 OT 數據「即插即用」?
我們觀察到,自由命名 Topic 常導致數據孤島與混亂,所以我們的標準做法是全面採用 Sparkplug B 規範,將 Topic 階層結構化(Group/Node/Device),並在 Payload 中強迫帶入數據型態與品質標籤(Quality Code)。搭配 Unified Namespace (UNS) 命名規則,能讓任何新設備上線時,訂閱端自動解析數據資訊,實現真正即插即用。
01
如何防止 MQTT 主題格式混亂,實現 OT 數據「即插即用」?
我們觀察到,自由命名 Topic 常導致數據孤島與混亂,所以我們的標準做法是全面採用 Sparkplug B 規範,將 Topic 階層結構化(Group/Node/Device),並在 Payload 中強迫帶入數據型態與品質標籤(Quality Code)。搭配 Unified Namespace (UNS) 命名規則,能讓任何新設備上線時,訂閱端自動解析數據資訊,實現真正即插即用。
02
如何確保網路波動時,關鍵設備數據「不漏報、不重報」?
我們的評估關鍵在於 「QoS 級別配置」與 「Edge 端 Persisted Storage(斷線緩存)機制」。傳統 MQTT 若設定不當易失單。針對設備狀態與告警等關鍵數據,必須選用 QoS 1 或 QoS 2(Exactly Once);同時在 Edge Gateway 端開啟 Message Persistence 功能。當網路波動斷線時,邊緣端暫存數據,待連線復原後自動完成補傳與去重(Deduplication),確保數據零漏報、零重複。
02
如何確保網路波動時,關鍵設備數據「不漏報、不重報」?
我們的評估關鍵在於 「QoS 級別配置」與 「Edge 端 Persisted Storage(斷線緩存)機制」。傳統 MQTT 若設定不當易失單。針對設備狀態與告警等關鍵數據,必須選用 QoS 1 或 QoS 2(Exactly Once);同時在 Edge Gateway 端開啟 Message Persistence 功能。當網路波動斷線時,邊緣端暫存數據,待連線復原後自動完成補傳與去重(Deduplication),確保數據零漏報、零重複。
03
當連線設備擴展至數萬個 Sensor 時,Broker 架構能否承受高併發?
單機版 Broker 必定面臨運算瓶頸。高階架構採用 EMQX 或 HiveMQ 等企業級分散式 Broker 集群,配合 Kubernetes 進行容器化動態擴容。透過負載均衡器(Load Balancer)分流數萬個 Sensor 的 TCP 長連線,確保在高併發、高頻率(>100k msg/sec)衝擊下,吞吐延遲依然快速。
03
當連線設備擴展至數萬個 Sensor 時,Broker 架構能否承受高併發?
單機版 Broker 必定面臨運算瓶頸。高階架構採用 EMQX 或 HiveMQ 等企業級分散式 Broker 集群,配合 Kubernetes 進行容器化動態擴容。透過負載均衡器(Load Balancer)分流數萬個 Sensor 的 TCP 長連線,確保在高併發、高頻率(>100k msg/sec)衝擊下,吞吐延遲依然快速。
04
當 MQTT 跨越廠區傳輸時,如何防止機密數據遭竊聽或篡改?
我們將標準訂在 「TLS 1.3 雙向加密認證(mTLS)」與「 Zero-Trust 零信任邊界」。跨廠傳輸絕不可明文傳送。我們協助客戶部署 mTLS 雙向證書驗證,確保僅授權設備能建立連線;傳輸層採用 AES-256 TLS 加密,並結合 OAuth 2.0/JWT 進行 Topic 級別的細粒度讀寫權限控管。即使數據流經網際網路,也能完全防範竊聽與中間人(MITM)篡改。
04
當 MQTT 跨越廠區傳輸時,如何防止機密數據遭竊聽或篡改?
我們將標準訂在 「TLS 1.3 雙向加密認證(mTLS)」與「 Zero-Trust 零信任邊界」。跨廠傳輸絕不可明文傳送。我們協助客戶部署 mTLS 雙向證書驗證,確保僅授權設備能建立連線;傳輸層採用 AES-256 TLS 加密,並結合 OAuth 2.0/JWT 進行 Topic 級別的細粒度讀寫權限控管。即使數據流經網際網路,也能完全防範竊聽與中間人(MITM)篡改。
05
MQTT 能否超越單純傳輸,成為全廠智慧轉型的數據中樞?
這需要建立 「基於 MQTT 的 Unified Namespace (UNS) 工業數據中樞架構」。過去,我們協助客戶將 MQTT 升級為 UNS 核心,將 ERP、MES、SCADA 及 AI 分析模組全面掛載於 MQTT 匯流排上。數據不再是傳統層級式傳遞,而是實時發布至統一命名空間;任何系統按需訂閱,將數據傳輸工具精確升級為全廠實時決策的數據心臟。
05
MQTT 能否超越單純傳輸,成為全廠智慧轉型的數據中樞?
這需要建立 「基於 MQTT 的 Unified Namespace (UNS) 工業數據中樞架構」。過去,我們協助客戶將 MQTT 升級為 UNS 核心,將 ERP、MES、SCADA 及 AI 分析模組全面掛載於 MQTT 匯流排上。數據不再是傳統層級式傳遞,而是實時發布至統一命名空間;任何系統按需訂閱,將數據傳輸工具精確升級為全廠實時決策的數據心臟。
製造業的朋友們,我們誠摯邀請您一同建立需求,請您提出問題,我們將安排專業的顧問為您解答。









