更新時間:2023年07月21日14時49分 來源:傳智教育 瀏覽次數(shù):
EMQ X Rule Engine (以下簡稱規(guī)則引擎) 用于配置 EMQ X 消息流與設(shè)備事件的處理、響應(yīng)規(guī)則。規(guī)則引擎用于配置一套規(guī)則,該規(guī)則是針對EMQ X的消息流和設(shè)備事件如何處理的一套細則。
規(guī)則引擎不僅提供了清晰、靈活的 "配置式" 的業(yè)務(wù)集成方案,簡化了業(yè)務(wù)開發(fā)流程,提升用戶易用性,降低業(yè)務(wù)系統(tǒng)與 EMQ X 的耦合度;也為 EMQ X 的私有功能定制提供了一個更優(yōu)秀的基礎(chǔ)架構(gòu)。、
EMQ X 在 消息發(fā)布或事件觸發(fā) 時將觸發(fā)規(guī)則引擎,滿足觸發(fā)條件的規(guī)則將執(zhí)行各自的 SQL 語句篩選并處理消息和事件的上下文信息。
規(guī)則引擎借助響應(yīng)動作可將特定主題的消息處理結(jié)果存儲到關(guān)系型數(shù)據(jù)庫(mysql,PostgreSQL),
NoSql(Redis,MongoDB),發(fā)送到 HTTP Server,轉(zhuǎn)發(fā)到消息隊列 Kafka 或 RabbitMQ,重新發(fā)布到新的主題甚至是另一個 Broker 集群中,每個規(guī)則可以配置多個響應(yīng)動作。
規(guī)則引擎使用 $events/ 開頭的虛擬主題(事件主題)處理 EMQ X 內(nèi)置事件,內(nèi)置事件提供更精細的消息控制和客戶端動作處理能力,可用在 QoS 1 QoS 2 的消息抵達記錄、設(shè)備上下線記錄等業(yè)務(wù)中。
動作監(jiān)聽:智慧家庭智能門鎖開發(fā)中,門鎖會因為網(wǎng)絡(luò)、電源故障、人為破壞等原因離線導(dǎo)致功能異常,使用規(guī)則引擎配置監(jiān)聽離線事件向應(yīng)用服務(wù)推送該故障信息,可以在接入層實現(xiàn)第一時間的故障檢測的能力;
數(shù)據(jù)篩選:車輛網(wǎng)的卡車車隊管理,車輛傳感器采集并上報了大量運行數(shù)據(jù),應(yīng)用平臺僅關(guān)注車速大于40 km/h 時的數(shù)據(jù),此場景下可以使用規(guī)則引擎對消息進行條件過濾,向業(yè)務(wù)消息隊列寫入滿足條件的數(shù)據(jù);
消息路由:智能計費應(yīng)用中,終端設(shè)備通過不同主題區(qū)分業(yè)務(wù)類型,可通過配置規(guī)則引擎將計費業(yè)務(wù)的消息接入計費消息隊列并在消息抵達設(shè)備端后發(fā)送確認通知到業(yè)務(wù)系統(tǒng),非計費信息接入其他消息隊列,實現(xiàn)業(yè)務(wù)消息路由配置;
消息編解碼:其他公共協(xié)議 / 私有 TCP 協(xié)議接入、工控行業(yè)等應(yīng)用場景下,可以通過規(guī)則引擎的本地處理函數(shù)(可在 EMQ X 上定制開發(fā))做二進制 / 特殊格式消息體的編解碼工作;亦可通過規(guī)則引擎的消息路由將相關(guān)消息流向外部計算資源如函數(shù)計算進行處理(可由用戶自行開發(fā)處理邏輯),將消息轉(zhuǎn)為業(yè)務(wù)易于處 理的 JSON 格式,簡化項目集成難度、提升應(yīng)用快速開發(fā)交付能力。