EMQX:大規模分布式MQTT消息服務器5.0版本都有哪些更新?
EMQX是一款完全開源、高度可伸縮、高可用的分布式MQTT消息服務器,支持CoAP/LwM2M一站式IoT協議接入。它基于Erlang/OTP平臺開發,適用于IoT、M2M和移動應用程序,可處理千萬級別的并發客戶端。設計目標是實現高可靠,并支持承載海量物聯網終端的MQTT連接,支持在海量物聯網設備間低延時消息路由。
一、EMQX特性
- 開放源碼:基于 Apache 2.0 許可證,EMQX 實現了完全開源,自 2013 年以來已經發布了超過 200 個開源版本,不斷迭代更新以滿足用戶需求。
- 超大規模:EMQX 5.0 的單集群可以支持多達一億條 MQTT 并發連接,展示了其在處理大量并發連接方面的強大能力。
- 高性能:單個服務器在傳輸和處理方面的吞吐量可以達到每秒百萬級別的 MQTT 消息,顯示出其在高吞吐量處理方面的出色性能。
- 低延遲:近乎實時的信息傳遞能力,確保了延遲時間在亞毫秒級別,為用戶提供了快速響應和實時性的體驗。
- 全面支持 MQTT 5.0 標準:完全符合 MQTT 5.0 和 3.x 標準,使其具有更好的可擴展性、安全性和可靠性,為用戶提供了全面的 MQTT 協議支持。
- 高可用:通過采用無主節點分布式架構,實現了高可用性和水平擴展性,確保了系統的穩定性和可擴展性。
- 云原生:通過使用 Kubernetes Operator 和 Terraform,用戶可以在企業內部和公共云中輕松地部署 EMQX,簡化了部署過程并提高了效率。
二、EMQX 5.0 全新功能
1.Mria 集群架構
EMQX 5.0 支持全新的 Mria 集群架構,該架構極大地提高了 EMQX 的水平擴展性,使其單個集群能夠輕松支持高達 1 億個 MQTT 連接。這使得 EMQX 5.0 在全球范圍內成為最具擴展性的 MQTT Broker。
除了提供更大規模的集群以滿足用戶業務需求,Mria 架構還有效降低了大規模部署可能帶來的腦裂風險以及腦裂發生后的潛在影響。這使得 EMQX 5.0 能夠提供更加穩定可靠的物聯網數據接入服務,以滿足用戶的需求。
2.MQTT over QUIC 支持
EMQX 5.0 以實驗性功能將 QUIC 作為 MQTT 傳輸層,并設計了一種獨特的消息傳輸機制和管理方式。QUIC 非常適用于傳統 TCP/IP 網絡 UDP MTU 大小能夠保證的弱網環境或者網絡經常切換的環境。對于設備時刻處在移動中的物聯網場景(如車聯網、移動采集等),或是需要頻繁斷連不適合做長連接的場景(如設備需要定期休眠)來說,QUIC 都擁有巨大的潛力,是更為適合的底層協議選擇。
3.全新物聯網數據集成
EMQX 5.0 在其原有的 SQL 基礎上集成了 jq,以支持更復雜的 JSON 數據的處理。此外,它還支持將數據發送到 Webhook,或與外部 MQTT 服務建立雙向數據橋接。
同時,EMQX 5.0 還提供了數據集成可視化查看能力(Flows),通過 Dashboard 頁面,您可以清晰地追蹤和監控設備與云端之間的物聯網數據處理和流轉步驟。
在后續版本中,EMQX 還將引入一項新功能,即通過 Dashboard 以拖拽的方式編排規則和數據橋接(Flow Editor),通過可視化操作實現數據集成配置,這將進一步簡化數據集成的復雜性。
4.靈活多樣認證授權
EMQX 5.0 認證授權的改進流程使其更加靈活易用,同時提供了對接各類數據源與認證服務的配置方式。通過簡單的配置,用戶無需編寫代碼即可為物聯網應用開啟安全防護。
EMQX 5.0 認證授權的特性包括:
- 在 Dashboard 中完成整個集群的認證授權配置,簡化了操作流程。
- 通過 Dashboard 管理認證憑證與授權數據,方便用戶進行權限管理和數據控制。
- 支持調整認證器與授權檢查器順序,以滿足不同場景下的需求。
- 提供執行速度與次數統計指標,實現認證授權的可觀測性,方便用戶監控和優化系統性能。
- 允許監聽器單獨配置認證,提供了更靈活的接入能力,方便用戶根據不同需求進行定制化配置。
5.全新 EMQX Dashboard
EMQX 5.0 引入了全新的 UI 設計風格的 EMQX Dashboard,不僅提升了視覺體驗,還極大地增強了 EMQX 的易用性。
全新的 Dashboard 更新包括:
- 全新的 UI/UX 設計,提供豐富的樣式和易于上手的使用交互。
- 優化的菜單結構,使用戶能夠快速直達訪問相關內容。
- 更豐富的可視化系統,使數據和狀態清晰明了。
- 開箱即用的認證授權配置與管理功能,方便用戶進行權限管理和數據控制。
- 強大的數據集成能力,通過 Flow 可視化編排和雙向數據橋接實現靈活的數據集成配置。
- 在線配置更新功能,使用戶能夠在 Dashboard 上實現配置的熱更新。
6.全新網關框架
EMQX 5.0 對多協議接入的底層架構進行了重構,使得各個網關的功能定義更加清晰明確。這一重構包括以下內容:
- 獨立的統計指標:每個網關都有自己獨特的收發字節數、消息等指標,這些指標獨立于其他網關,有助于更好地了解和監控每個網關的性能。
- 獨立的連接和會話管理能力:這種能力使每個協議的客戶端屬性得以清晰地查看和管理。這意味著,無論是哪種協議的客戶端,其屬性都能夠在網關中進行統一的管理和維護。
- 獨立的客戶端認證:每個網關都可以配置獨立的認證方式,這樣可以根據實際情況對不同的網關進行差異化的認證管理。
- 更簡單的協議擴展機制:通過標準化的概念和接口,新協議的擴展變得更加簡單和容易。這為未來可能加入的新協議提供了更加便捷的集成方式。
EMQX 5.0 的網關不僅實現了多種協議的接入和統一管理,還使得 MQTT 之外的其他協議也能夠充分享受 EMQX 的強大功能,如數據集成、安全可靠的認證授權以及極高的水平擴展能力等。這為物聯網設備提供了更靈活、更高效的接入和管理方式,推動了物聯網技術的進一步發展。
7.更多功能更新
- 全新的簡潔配置:通過將配置文件更改為簡潔易讀的HOCON格式,并默認僅包含常用的配置項,emqx.conf文件可讀性和可維護性得到了提高。
- 改進的REST API:提供了符合OpenAPI 3.0規范的REST API,并附帶了清晰且豐富的API文檔,為用戶帶來更好的使用體驗。
- 快速故障排查:提供了更多的診斷工具,如慢訂閱和在線追蹤等,以幫助用戶快速排查生產環境中的問題。
- 結構化日志:提供了更友好的結構化日志以及JSON格式日志支持,錯誤日志中包含了唯一的msg,方便定位問題原因。
- 更靈活的拓展機制:通過引入全新的插件架構,用戶可以以獨立插件包的形式進行編譯、分發和安裝拓展插件。同時支持配置多個多語言鉤子擴展exhook,并提供完善的狀態與指標監控。