規則引擎簡介 - EMQ X的新功能企業EMQ X企業規則引擎 消息RuleEvent規則 附件:規則引擎功能列表數據庫
EMQ X企業規則引擎 EMQ X規則引擎用於配置 EMQ X消息或事件的處理和響應規則。做爲EMQ X在2019年的一項新的重要功能,規則引擎不只提供了清晰靈活的「可配置」業務集成解決方案,還用於簡化業務開發流程,提升可用性,並下降業務系統與業務系統之間的耦合程度。 EMQ X,但也爲EMQ X的私有功能定製提供了更好的基礎設施,以加快開發交付。服務器
規則引擎的開源版本提供了基本的處理功能,並已集成到EMQ X v3.1.0中。正在開發一種更靈活,更實用和可定製的規則引擎用於測試,計劃在下一個EMQ X企業版中發佈。網絡
規則引擎的典型應用場景示例以下: ·動做監聽:智能家居智能門鎖的開發,因爲網絡或電源故障致使門鎖功能異常,人爲損壞等緣由。經過使用規則引擎配置監控離線事件,能夠將故障信息推送到應用服務,實現接入層首次故障檢測的能力。架構
·數據過濾:車輛網絡的卡車車隊管理。車輛傳感器收集並報告大量運行數據。應用平臺僅關注車速大於40 km / h的數據。在這種狀況下,規則引擎可用於有條件地過濾消息到服務,而且知足條件的數據能夠寫入業務消息隊列。函數
·消息路由:在智能計費應用中,終端設備經過不一樣的主題區分服務類型。經過配置規則引擎,能夠將計費服務的消息鏈接到計費消息隊列,而且能夠將非計費信息鏈接到其餘消息隊列,以實現業務消息的路由配置。測試
·消息編碼和解碼:在公共協議/專有TCP協議訪問和工業控制等應用場景中,二進制/特殊格式消息體的編碼和解碼能夠經過規則引擎的本地處理功能完成(能夠是在EMQ X上定製和開發。相關消息也能夠經過規則引擎路由到外部計算資源,例如用於處理的功能計算(處理邏輯能夠由用戶開發),而且消息能夠轉換爲易於業務處理的JSON格式,這簡化了難度項目集成,提升應用程序的快速開發和交付能力。編碼
規則引擎工做圖插件
規則引擎經過嵌入EMQ的消息轉發過程來過濾,轉換和豐富數據,以實現高效的數據處理。新規則引擎涵蓋EMQ X 中多個插件的功能,集中管理原始插件中的獨立外部資源 ,從而實現資源重用,下降管理和監聽複雜度。同時,規則引擎構建到EMQ X中的大多數計算只能在應用程序端執行。經過計算,篩選和過濾高價值數據以提升消息處理效率,簡化了業務架構,減小了數據傳輸路徑,減小了消息處理延遲。3d
規則引擎相關功能包括: ·消息規則:處理從設備到EMQ X的消息,實現條件計算和過濾,消息結構調整,消息從新分配,持久性和橋接;日誌
·事件規則:處理設備通訊生命週期中的事件信息,實現設備狀態記錄功能,包括在線或離線通知,認證鏈接記錄,消息計費統計等消息狀態記錄。
·資源管理:集中管理外部資源,實現資源重用,下降管理收聽複雜度。
與EMQ X的其餘功能同樣,規則引擎也提供相似的HTTP REST API,以便於用戶集成應用程序開發。規則引擎的可視化建立,編輯和管理功能也在EMQ X儀表板中實現
消息規則 藉助規則引擎中的消息規則,用戶能夠將消息從設備路由到EMQ X,或者將消息寫入對象或資源(如各類數據庫,消息隊列,HTTP REST網關),或者將它們從新發送到服務器設備 - 計算。
規則引擎提供基於SQL表達式的數據查詢和處理功能,容許用戶在配置後續處理操做以前過濾數據並將消息轉換爲預設格式。
SQL表達式的示例以下:
在發送到「t / a」主題的消息正文中選擇名稱字段,其中過濾條件爲name ='EMQ', 選擇payload.name做爲名稱來自「 message.publish「where topic ='t / a'和name ='EMQ'
選擇發送到「command /#」主題的消息體 從「command /#」中選擇有效負載
消息規則的典型功能和應用場景以下:
·按消息主題過濾,指定要處理的消息,並在處理後從新發布到新主題;
·制定有條件篩選信息機構特定領域的篩選標準,以處理知足條件的數據;
·將消息體轉換爲預設結構進行處理,減小內部通訊資源和外部存儲和計算;
·使用預處理方法(如消息摘要,編碼轉換和數學運算)處理消息正文中的消息正文或指定字段,並在Broker中執行簡單計算以減小操做延遲。
每條消息規則都包含如下屬性:
屬性描述 Source基於MQTT主題,使用SQL中的FROM命令篩選要處理的數據流的源 條件條件過濾表達式爲消息體(僅限JSON信息)和消息上下文信息(如QoS,客戶端ID,用戶名),用於肯定規則的匹配條件和消息結構,使用 SQL中的WHERE命令進行查詢。| 消息正文的處理器選擇表達式(僅限JSON信息)和用於選擇和預處理指定數據的消息上下文信息(如QoS,客戶端ID,用戶名)。多種內置預處理方法,如消息摘要,編碼和解碼以及編碼轉換,規則引擎中的簡單數學運算,使用SQL子句和SQL函數進行處理。 操做在消息到達規則併成功處理以後須要觸發的操做,指定特定的操做操做,例如編寫數據庫SQL語句,發送到消息隊列的對象和主題。規則能夠定義一個或多個動做以實現規則的多端處理。
事件規則 使用規則引擎中的事件規則,用戶能夠在設備通訊生命週期中處理各類事件信息。事件規則的典型功能和應用場景以下:
·設備事件動做日誌:例如設備鏈接/斷開,消息發佈,發送/到達/丟棄,設備訂閱/取消訂閱等,用於設備操做記錄和行爲分析;
·設備在線和離線通知和記錄:偵聽client.connected和client.disconnected兩個事件,可用於記錄設備的在線和離線狀態;
·消息狀態記錄:監聽消息相關事件能夠實現密鑰消息命令狀態監控,例如「發出成功/失敗回調」。