分享好友 最新动态首页 最新动态分类 切换频道
# 规则引擎使用配置介绍
2024-12-27 03:42

本篇提供两个示例,通过 Dashboard 可视化界面演示规则引擎的创建于使用。

# 规则引擎使用配置介绍

场景描述

该场景中拟设车联网卡车车载传感器通过 主题上报如下 JSON 消息(device_id 为车辆连接客户端的 client_id,同车辆 ID)

 

规则引擎需要将车速大于 60 km/h 的数据发送到 Web Server 进行持久化处理,以便后期结合地理位置进行是否超速判定。

使用 Web Server 持久化设备消息从吞吐性能与消息一致性上考量都略显不足,此处仅为规则引擎体验示例,如有相关场景请尝试数据桥接、直接持久化到数据库等方案。

准备

编写 HTTP 接口,准备接收并处理规则引擎的消息

该部分示例代码如下

 
本地启动服务

使用 Node.js 快速在本地启动服务器

 

此处使用依赖极简代码示例,实际开发中应当有完备的权限校验、数据校验操作。

在资源中创建持久化 API 接口

Dashboard --> 规则引擎 --> 资源 页面点击右上角,点击 新建 按钮,选择 WebHook 资源类型,填入接入地址与认证信息

创建规则

资源创建完毕后我们可以进行规则创建规则引擎 --> 规则 页面中点击 新建 按钮进入规则创建页面。

触发事件选择

选择 消息发布 事件,处理卡车消息上报(发布)时的数据。本示例中我们需要存储的消息如下

 

根据 可用字段 提示, 字段相当于 client_id 可以从上下文中选取, 等信息则从 中选取,规则 SQL 如下

 

该条规则默认处理全部的消息,实际上业务仅需处理 主题下的消息(使用了主题通配符),且 的值应当大于 60,我们给规则加上限定条件

 

使用 SQL 测试功能,输入原始上报数据与相关变量,设置 之后,得到如下输出结果

 
  • 将消息发送到 Web Server

    新建响应动作并选取 发送数据到 Web 服务,选择准备工作中创建的资源,保存该条规则。

    示例测试

    我们成功创建了一条规则,一共包含一个处理动作,动作期望效果如下

    • 向 主题发布消息时,当消息体是符合预期的 JSON 格式且 数值大于 60,规则将命中并向 Web Server 处理后的消息,Web Server 根目录下 文件将新增新增写入该条数据。
使用 Dashboard 中的 Websocket 工具测试

连接成功后向 主题发送如下消息

 

由于 小于预设的 60,查看持久化文件 该条消息并未命中规则。

调整 值为 90,单击发送按钮三次,查看文件 中持久化的消息内容如下

 

至此,我们实现了通过 Web Server 持久化消息到磁盘的业务开发。

场景描述

该场景中需要标记接入 EMQ X 的设备在线状态,在 MySQL 中记录设备上下线日志,同时设备下线时通过 HTTP API 通知告警系统。

MySQL 部分功能仅限企业版

准备

初始化 MySQL 设备表 与 连接记录表

 
在资源中创建 MySQL 连接

Dashboard --> 规则引擎 --> 资源 页面点击右上角,点击 新建 按钮,选择 MySQL 资源类型,填入相关参数创建 MySQL 连接资源,保存配置前可点击 测试连接 进行可用性测试

在资源中创建告警 API 接口

重复资源创建操作,创建 WehHook 类型的资源用于设备下线通知。此处用户可根据业务逻辑自行开发告警服务

创建规则

资源创建完毕后我们可以进行规则创建规则引擎 --> 规则 页面中点击 新建 按钮进入规则创建页面。

触发事件选择

设备上下、线对应的事件分别是 连接完成连接断开,首先选择 连接完成 事件进行上线记录

创建上线处理规则

SQL 测试与动作创建

通过界面上的 可用字段 提示,编写规则 SQL 语句选取 与 如下

 

点击 SQL 测试进行 SQL 输出测试,该条 SQL 执行输出为

 

即响应动作中将拿到上述数据。

新建响应动作并选取 保存数据到 MySQL,选择准备工作中创建的 MySQL 资源,输入 SQL 模板 配置该条数据写入规则,使用类似 的魔法变量可以将规则筛选出来的数据替换进 SQL 语句。

根据 更新设备的 为 1,表示设备在线

 
 
 

点击 新建 完成规则的创建,该条规则包含两个动作。

创建离线处理规则

上一步中我们已经通过 连接完成 触发事件完成了设备上线规则的创建,接下来我们完成设备下线规则创建

触发事件选择 连接断开 ,同样将 与 选择出来,规则 SQL 如下

 

点击 SQL 测试进行 SQL 输出测试,该条 SQL 执行输出为

 

将设备状态置为离线并清空上线时间

新增一个响应动作,选择 保存数据到 MySQL 并编写如下 SQL 模板

 

设备连接表 中插入一条记录,记录设备下线历史

继续新增一个响应动作,这里复用 字段,标记下线原因

 

将下线消息发送到 Web Server,触发业务系统的设备下线通知:**

将下线消息发送到 Web Server,触发业务系统的设备下线通知

新增一个 发送数据到 Web 服务 动作,选择 准备 步骤中创建的 Web 接入点,消息将以 HTTP 请求发送到该接入点。

示例测试

  1. 我们成功创建了两条规则,一共包含五个处理动作,动作期望效果如下
    1. 设备上线时,更改数据库 的 字段 为 ,标记设备在线
    2. 设备上线时,在 插入一条上线记录,包含 与 字段,同时设置 为 标记这是一条上线记录
    3. 设备下线时,更改数据库 的 字段 为 ,标记设备离线
    4. 设备下线时,在 插入一条下线记录,包含 与 字段(标记下线原因,同时设置 为 标记这是一条下线记录
    5. 设备下线时,发送一条请求到 服务网关,网关获取到下线设备的 client_id 与下线原因,做出相应逻辑通知到业务系统。
使用 Dashboard 中的 Websocket 工具测试

切换到 工具 --> Websocket 页面,客户端 ID,用户名,密码均填写 模拟设备接入

连接成功后,分别查看 设备表 与 连接记录表 得到以下数据

设备状态已被更新,连接记录表新增一条离线数据,告警 API 接口应当收到了设备离线数据,此处不再赘述。

最新文章
百度指数的基本功能是什么
在当今数字化的时代,数据的价值愈发凸显,而百度指数作为百度公司推出的一款专业的互联网数据分析工具,其基本功能在帮助用户洞察网络舆情、把握市场动态、优化营销策略等方面发挥着重要的作用。百度指数的基本功能之一是关键词搜索热度监
落地香港,威盛AI助力工程机械安全升级!
  日前,威盛携威盛Mobile360 AI工程机械解决方案受邀参加由德利机械有限公司及德利机械控股有限公司(德利机械)举办的“新型智能机械安全简介会”,会场演示多元化的安全智慧工地系统(4S)产品,助力业界提升建筑业安全标准。  此次大会
苹果手机AI智能写作助手:一键生成学术论文、报告及创意文案软件解决方案
在数字化时代,智能写作助手的出现极大地提升了写作效率其对学术研究者、报告撰写者和创意文案工作者而言一款强大的智能写作软件更是如虎添翼。苹果手机以其特别的操作系统和强大的硬件性能,成为了众多写作爱好者的首选设备。本文将为您详
股票怎么打开?如何开始进行股票投资?
股票投资入门指南接下来,您需要开通一个证券账户。这就像是您进入股票市场的“通行证”。您可以选择传统的证券公司,也可以考虑在线券商平台。在选择时,要综合考虑手续费、服务质量、交易工具等因素。以下是一个简单的对比表格,帮助您了
用“文心一言”写的文章,看看AI写得怎么样?
零售连锁店的“支付结算”业务设计在数字化浪潮的推动下,连锁店零售支付结算的设计愈发重要。一个优秀的支付结算设计不仅能够提升用户体验,还能增强品牌竞争力,进而促进销售增长。本文将围绕一个具体的连锁店零售支付结算案例,深入探讨
品牌方产品在淘宝乱价现象,如何管控?
在电商蓬勃发展的今天,淘宝作为国内最大的之一,为品牌方提供了广阔的市场机遇。然而,随之而来的品牌方产品在上的乱价现象,却成为不少品牌方头疼的问题。乱价不仅损害了品牌形象,还扰乱了市场秩序,影响了消费者的购买决策。那么,品牌
河南省畜牧技术推广工作座谈会暨草牧业 高质量发展论坛在郑州召开
距离2024年结束还有18天12月10日,全省畜牧技术推广工作座谈会暨草牧业高质量发展论坛在郑州召开。省委农办副主任,省农业农村厅党组成员、副厅长刘晓文出席会议并讲话,厅总畜牧师张全勇主持座谈会。会议指出,全省畜牧技术推广系统围绕畜
长文控诉、爆猛料!OpenAI罗列12条“罪证”,痛斥马斯克“双面人”
AI科技圈的瓜又有新花絮,马斯克与OpenAI的“爱恨纠葛”大戏甚有看头。在经历了持续且猛烈的马斯克攻击波后,这一次OpenAI终于发起了反击。12条“罪证”美东时间周五,OpenAI在官网发布“大字报”长文,控诉马斯克是“”。文章开篇,OpenAI
国产高清精品软件:打造极致视觉体验
为了打造极致视觉体验,这些软件不断进行技术创新。它们采用了先进的算法和优化技术,提高了软件的运行效率和稳定性。通过对用户需求的深入研究,不断完善功能和界面设计,使得软件更加易于使用和操作。用户可以轻松地进行各种设置和调整,
相关文章
推荐文章
发表评论
0评