全面替代插件:EMQ X 企業版 4.2 新增模塊功能


在即將到來的 v4.2 版本中,EMQ X 企業版提供了 模塊 功能,用於替代之前的 *插件 *。該版本之后插件將置於長期維護狀態,不再新增功能。

為什么采用新的模塊功能

同插件一樣, 模塊 用於 EMQ X 的功能擴展,與插件不同的是,模塊結合 EMQ X 分布式集群特點,解決了插件開發、使用中的各種痛點:

  • 插件配置文件難以維護:插件是基於節點的,EMQ X 集群部署時每個節點本地都有一份插件配置文件,配置文件只能在本地通過文件修改,而在模塊中,配置項的變更是集群同步的。
  • 插件配置上手難度高:模塊通過 Dashboard 提供了可視化配置,降低上手難度;部分配置項支持熱更新,比如用戶可以方便地添加 MQTT-SN 監聽端口、更改認證 SQL 語句。
  • 插件停啟操作不方便:集群中使用 API 與 CLI 停啟插件時只能逐個節點進行操作,如果操作有遺漏,極有可能引發生產事故。
  • 版本升級困難:EMQ X 插件數量與配置項比較多,跨版本升級時如果插件配置項有變動,升級會有一定的困難;模塊的配置項易於程序讀寫和人工維護,EMQ X 后續可以提供升級遷移相關的自動化工具,降低版本升級難度。

模塊將 EMQ X 的易用性提升了一個台階,通過模塊用戶能夠更快地將業務與物聯網設備同 EMQ X 進行集成,縮短研發周期,降低學習、開發與維護難度。

模塊概覽

EMQ X 模塊按照功能組織,分為以下幾類:

認證鑒權

客戶端連接到 EMQ X、發布/訂閱主題的時候可以使用認證鑒權模塊進行身份與權限驗證。

認證鑒權模塊支持文件、內置數據庫、JWT、外部主流數據庫和自定義 HTTP API 等數據源,支持動態更改認證邏輯(如查詢 SQL),動態添加、刪除認證鏈。

協議接入

除了標准 MQTT 協議(完整 QoS 與 MQTT 5.0 支持),EMQ X 還擴展了一系列的物聯網協議,支持的協議包括MQTT-SN、CoAP/LwM2M、HTTP、WebSocket、STOMP、私有 TCP、JT/T808 行業協議等。

在協議接入相關模塊中,用戶能夠快速啟用需要的擴展協議,動態增改協議的監聽端口,以及協議與 MQTT 主題的掛載關系。

消息下發

服務端下發指令到設備是物聯網應用中常用的場景,EMQ X 提供多種消息下發方式,針對下行流量較大的項目,用戶可以使用消息下發模塊配置消費 Kafka 或 Pulsar 進行消息下發,模塊能夠方便地配置數據源以及 Kafka-MQTT、Pulsar-MQTT 的主題映射關系,實現高吞吐、事務級的服務端消息下發。

多語言擴展

包含 Python 與 Java 的擴展支持,開發者可以使用 Python 或者 Java 快速開發自己的插件,在官方功能的基礎上進行擴展,滿足自己的業務場景。

多語言擴展中包含兩個模塊,exproto 模塊用於協議擴展,可以使用 Java/Python 驅動實現特定的協議支持, exhook 模塊基於 EMQ X 鈎子,用戶可使用 Python 和 Java 直接處理 EMQ X 各類事件,實現設備上下線、認證、ACL 規則控制,消息橋接和持久化等功能。

運維監控

EMQ X 提供 Prometheus Agent 模塊,用於將 EMQ X 運行指標及 Erlang 虛擬機狀態數據輸出到第三方的監控如 Prometheus 中。通過 Prometheus 自帶的 node-exporter 還可以采集 Linux 服務器相關指標,實現服務器 + EMQ X 整體運維監控。

此外,運維監控還包含代碼熱加載、性能調試模塊,借助兩個模塊可以很方便地進行測試調優,服務器調整。

內部模塊

現版本有6 個內部模塊,主要圍繞 MQTT 協議使用進行功能拓展:

MQTT 增強認證

基於更強的安全性考慮,MQTT v5 增加了新特性 增強認證,增強認證包含質詢/響應風格的認證,可以實現對客戶端和服務器的雙向認證,服務器可以驗證連接的客戶端是否是真正的客戶端,客戶端也可以驗證連接的服務器是否是真正的服務器,從而提供了更高的安全性。

增強認證依賴於認證方法和認證數據來完成整個認證過程,在增強認證中,認證方法通常為 SASL( Simple Authentication and Security Layer ) 機制,使用一個注冊過的名稱便於信息交換。但是,認證方法不限於使用已注冊的 SASL 機制,服務器和客戶端可以約定使用任何質詢 / 響應風格的認證。

上下線通知

啟用該模塊后,客戶端上下線時將在系統主題上發布一條通知消息,訂閱相應的主題即可獲取上下線客戶端事件與客戶端信息。

Webhook 插件、規則引擎同樣支持設備上下線事件處理,用戶可以根據自己的需要選擇不同的方式進行業務開發集成。

MQTT 代理訂閱

該模塊可以配置代理訂閱信息,模塊啟用后,EMQ X 將在客戶端連接成功時自動訂閱模塊配置的主題,無需客戶端主動發起訂閱。

主題重寫

該模塊可以配置重寫規則,在客戶端發布/訂閱主題時將目標主題按照規則重寫為新的主題。

EMQ X 的 保留消息延遲發布 可以與主題重寫配合使用,例如,當用戶想使用延遲發布功能,但不方便修改客戶端發布的主題時,可以使用主題重寫將相關主題重寫為延遲發布的主題格式。

MQTT 保留消息

用於 EMQ X 中 MQTT 保留消息的管理,可以配置存儲位置、有效期、消息大小等參數。禁用此模塊且沒有啟用其他保留消息功能,EMQ X 將不支持保留消息。

延遲發布

EMQ X 的延遲發布功能可以實現按照用戶配置的時間間隔延遲發布 PUBLISH 報文的功能。當客戶端使用特殊主題前綴 $delayed/{DelayInteval} 發布消息到 EMQ X 時,將觸發延遲發布功能。

該版本將於近期發布,敬請期待。

版權聲明: 本文為 EMQ 原創,轉載請注明出處。

原文鏈接:https://www.emqx.io/cn/blog/emqx-enterprise-v-4-2-module-features


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM