EMQ规则引擎

场景

IOT设备上报数据中,需要帮助我们去刷选出符合我们业务需求的数据,例如电量小于30%、多设备通讯需要知道设备的上下线状态等。

规则引擎概述

EMQ提供了开源的规则引擎,使用WebHook资料类型,将数据发送到Web服务。企业版支持更多方式。
下图是EMQ规则引擎架构 :
基于SQL、动态配置EMQX消息流与设备事件的处理、响应规则,进行消息存储、事件处理。

当设备发送消息时,消息路由正常流转,发布到消息订阅者应用上,与此同时EMQ还会将消息流转到规则引擎,规则引擎进行刷选、匹配、处理,最后将符合条件的数据进行输出到MYSQL、HTTP等动作里面。

最小规则

  • 触发事件 : 规则通过事件触发,触发时事件给规则注入事件的上下文信息,通过SQL的FROM字句指定事件类型;
  • 处理规则(SQL) : 使用SELECT 字句和 WHERE字句以及内置处理函数,从上下文信息中过滤和处理数据
  • 响应动作 : 如果有处理结果输出,规则将执行响应的动作,如持久化到数据库、重新发布处理后的消息、转发消息到消息队列等,一条规则可以配置多个响应动作。

事件主题

在这里插入图片描述

动作

十余种,例保存到MYSQL、转发到kafka、Redis、HTTP等

更多EMQ规则引擎介绍详见文档 : 官方文档

管理设备上下线

首先在EMQ的 Dashboard 页面创建规则,$events/client_connected 为设备上线事件、$events/client_disconnected 为设备下线事件。两者应在FROM字句后。

  • 创建设备上线规则SQL :
    SELECT clientid, connected_at FROM "$events/client_connected"

  • 创建设备下线规则SQL:
    SELECT clientid, disconnected_at FROM "$events/client_disconnected"

  • 创建响应动作,以webhook为例:
    在这里插入图片描述
    点击保存,我们就可以收到设备上下线的消息了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值