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