EMQ X Enterprise 新功能Rule Engine如何理解

发布时间:2022-01-14 17:10:33 作者:柒染
来源:亿速云 阅读:117

EMQ X Enterprise 新功能Rule Engine如何理解,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

EMQ X Enterprise Rule Engine

RuleEngine (以下简称规则引擎) 用于配置 EMQ X 消息流与设备事件的处理、响应规则。作为 2019 年度 EMQ X 新增重量级功能,规则引擎不仅提供了清晰、灵活的"配置式"的业务集成方案,用于简化业务开发流程,提升用户易用性,降低业务系统与 EMQ X 的耦合度;也为 EMQ X 的私有功能定制提供了一个更优秀的基础架构,提升开发交付速度。

规则引擎开源版本提供了基础处理能力,已集成在 EMQ X v3.1.0 中发布。功能更灵活完备、可用性定制性更强的规则引擎正在紧密开发测试,计划集成在下一 EMQ X 商业版中发布。

规则引擎典型应用场景举例:

Rule Engine 工作示意图

EMQ X Enterprise 新功能Rule Engine如何理解

规则引擎通过嵌入在 EMQ 的消息转发过程中对数据进行过滤、转换和丰富,实现高效的数据处理。新的规则引擎涵盖了 EMQ X 中多个插件的功能,将原先插件中独立的外部资源进行集中管理,实现资源复用,降低管理监控复杂度。同时,规则引擎将大部分原先只能在应用端进行的计算内置到 EMQ X 中,通过计算、过滤、筛选高价值数据提高消息处理效率的同时,精简了业务架构、减少数据传递路径降低了消息处理时延。

规则引擎相关的功能包括:

与 EMQ X 其他功能一样,规则引擎同样提供了类似的 HTTP REST API 方便用户应用开发集成,EMQ X Dashboard ( EMQ X 管理控制台)中亦实现了规则引擎的可视化创建、编辑、管理功能。

EMQ X Enterprise 新功能Rule Engine如何理解

EMQ X Enterprise 新功能Rule Engine如何理解

消息规则

借助规则引擎中的消息规则,用户可以将设备到 EMQ X 的消息路由或写入到各类数据库、消息队列、HTTP REST 网关等对象或资源中,或重新发送到设备以实现服务端计算功能。

规则引擎提供了基于 SQL 表达式的数据查询、处理功能,让您先筛选数据并转换消息为预置格式,再配置后续处理动作。

SQL 表达式范例如下:

-- 选择发往 "t/a" 主题的消息体中的 name 字段, 过滤条件为 name = 'EMQ'
select payload.name as name from "t/a" when name = 'EMQ'


-- 选择发往 "command/#" 主题的消息体
select payload from "command/#"

消息规则典型功能与应用场景如下:

每条消息规则包含以下属性:

属性说明
Source要处理的数据流来源,基于 MQTT 主题,使用 SQL 中的 FROM 指令筛选
条件针对消息正文(仅限 JSON 信息)、消息上下文信息(如 QoS、Client ID、Username)的条件过滤表达式,用于确定该条规则的匹配条件、消息结构。使用 SQL 中的 WHERE 指令查询
处理器针对消息正文(仅限 JSON 信息)、消息上下文信息(如 QoS、Client ID、Username)的选择表达式,用于选择并预处理指定数据,规则引擎内置多种预处理方法如消息摘要、编解码与编码转换、简单数学运算,使用 SQL 的子句与 SQL 函数处理。
动作消息命中规则并处理成功后需要触发的动作,指定具体的动作操作如写入数据库 SQL 语句,发送到消息队列的对象、主题。一条规则可以定义一个或多个动作,实现规则的多端处理。
事件规则
附:规则引擎功能列表
功能说明开源版商业版
基础功能


条件筛选通过事件名称、上下文信息、消息内容进行条件筛选,选择要处理的消息流支持支持
预处理通过内置处理函数实现消息的简单数学计算、字符处理、编解码能力,输出预置格式的消息支持支持
资源管理通过内置处理函数实现消息的简单数学计算、字符处理、编解码能力,输出预置格式的消息支持支持




消息输出


发布到指定主题将规则处理后的消息重发布(republish)到指定主题进行载处理或供订阅端使用支持支持
发送到 WebHook将消息发布到 HTTP API 网关支持支持
发送到消息队列支持 Kafka、RabbitMQ 等私有或公有云消息中间件
支持
写入到数据库包括 MySQL、PostgreSQL、MongoDBRedis 等私有或公有云数据库
支持
发送到另一个 MQTT Broker通过 MQTT 协议将消息发布到另一个 MQTT Broker 指定主题,包括但不限于 EMQ X、Azure IoT Hub、AWS IoT、阿里云物联网平台
支持




扩展定制


处理功能定制定制私有内置处理函数,灵活处理私有协议、特殊编码消息
支持
消息输出定制定制私有消息输出方式,规则输出端更灵活
支持

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

推荐阅读:
  1. 如何使用Rancher在Kubernetes上部署EMQ X集群
  2. 怎么访问Kubernetes集群中的EMQ X

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

enterprise emq x

上一篇:怎么操作mysql数据库

下一篇:springboot整合quartz定时任务框架的方法是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》