规则引擎简介 - EMQ X企业的新功能

规则引擎简介 - 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中的大多数计算只能在应用程序端执行。通过计算,筛选和过滤高价值数据以提高消息处理效率,简化了业务架构,减少了数据传输路径,减少了消息处理延迟。

规则引擎相关功能包括: ·消息规则:处理从设备到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两个事件,可用于记录设备的在线和离线状态;

·消息状态记录:监听消息相关事件可以实现密钥消息命令状态监控,例如“发出成功/失败回调”。

转载于:https://juejin.im/post/5cdbce98e51d453a572aa2f8

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值