引言
规定引擎是一种可能依据输出数据依照预设规定进行决策或执行动作的软件系统。本文将向您介绍 EMQX MQTT Broker 的规定引擎性能,并论述其在 MQTT 音讯转换和数据集成方面的重要作用。同时,咱们还将提供一份疾速入门指南,通过实例帮忙您疾速上手 MQTT 规定引擎。
MQTT 的规定引擎是什么?
MQTT 是一种高效牢靠的音讯传输协定,特地实用于低带宽、高提早网络(在物联网畛域非常常见)。在 MQTT 的公布 / 订阅模型中,MQTT Broker 扮演着要害角色,负责接管发布者发送的音讯并将其牢靠高效地分发给订阅者,确保音讯的顺利传递。
MQTT 规定引擎是一种能够针对 MQTT 音讯制订和执行规定的组件。该规定引擎具备提取、过滤、加工和转换 MQTT 音讯的能力,并且能够在满足特定条件时触发相应的动作。通过规定引擎的利用,能够缩小人工干预,进步数据集成和利用开发的效率。
MQTT Broker 中规定引擎的利用场景
规定引擎在 MQTT Broker 中有着宽泛的利用,能够实现工作自动化、系统监控、效率晋升和平安保障。例如:
- 在智能家居自动化中,规定引擎能够实现一些工作的自动化,比方依据人员进出房间的状况自动开关灯,或者依据不同时间段调节室温。既能够节省能源,也能够让居住者享受更加便捷的生存体验。
- 在工业物联网利用中,它能够监控和管制简单的零碎,比方制作流程或电网。通过制订相应的规定,规定引擎能够发现和解决异样,从而防止设施故障,进步零碎性能。
- 在医疗保健行业中,它能够监测患者的衰弱状态,并及时向医护人员报告可能存在的问题,帮忙医护人员更好地关注患者的健康状况,及时采取必要的医治措施,进步医疗保健的成果和品质。
EMQX 开箱即用的内置规定引擎
EMQX 是一个开源、高度可扩大的 MQTT Broker,内置了规定引擎组件。它让用户能够用低代码的形式疾速构建数据处理的业务逻辑,从而升高了软件架构的复杂度。
咱们抉择在 Broker 外部嵌入规定引擎性能,而不是依赖 Broker 内部的独立的规定引擎,有两个起因:
- 首先,Broker 外部的规定引擎能够实现更高效和晦涩的通信。规定引擎能够间接获取 MQTT 音讯,无需额定的通信渠道或协定,这升高了提早,晋升了零碎性能。
- 其次,这能够让整个零碎的部署和治理更加简略。将规定引擎和 Broker 作为对立的组件部署在一起,无需别离进行集成和治理,从而简化了部署过程,缩小了零碎复杂度。
规定引擎疾速入门
这里咱们将以 EMQX Enterprise 为例,以便应用企业版提供的各种数据集成动作和资源。
下载 EMQX Enterprise
依据您的操作系统类型,在这里下载 EMQX Enterprise。
在下拉列表中抉择最新版的 EMQX Enterprise 4.4:
EMQX Enterprise 的默认许可证反对最多 10 个 MQTT 连贯 ,对于咱们体验规定引擎的性能来说曾经足够了。如果您须要更多的 MQTT 连贯,请点击“下载”按钮下方的链接申请 15 天收费试用。
这里咱们以 Ubuntu 20.04 为例,下载 EMQX Enterprise 4.4.17 安装包:
$ wget https://www.emqx.com/en/downloads/enterprise/4.4.17/emqx-ee-4.4.17-otp24.3.4.2-1-ubuntu20.04-amd64.zip
$ unzip emqx-ee-4.4.17-otp24.3.4.2-1-ubuntu20.04-amd64.zip
接下来,咱们启动 EMQX Broker:
$ cd emqx
$ ./bin/emqx start
应用 EMQX Cloud 体验咱们的云上 MQTT Broker
如果您不想装置 Linux 操作系统、下载和装置 EMQX,或者执行任何 Linux 命令的话,您能够应用 EMQX Cloud 来体验规定引擎性能。您只需在网页上进行一些简略的配置即可。
配置一条简略规定将 MQTT 音讯转发到其它主题
需要
咱们假如有个用户名为“Steve”的设施周期性地向 notify
主题发送 JSON 格局的音讯。上面是该设施发送的一条示例音讯:
{"city": "Stockholm", "value": 21}
咱们心愿从原始音讯中提取 value
字段值,并用它结构一条带有 temperature
字段的新音讯,而后依据原始音讯中的 city
字段值,将新音讯动静转发到相应的 MQTT 主题,比方,上述示例音讯将被转发到主题 city/Stockholm
:
{"temperature": 21}
为规定编写 SQL
既然咱们曾经明确了需要,就让咱们关上 EMQX Dashboard(http://localhost:18083
)来创立一个规定吧(仪表板的默认用户名 / 明码是 admin
/public
)。
为了实现上述需要,咱们须要编写如下 SQL 语句:
SELECT
payload.city as city,
payload.value as val
FROM
"notify"
WHERE
username = 'Steve'
咱们只关注主题为 notify
的音讯,因而在 FROM
子句中指定了它。WHERE
子句用于筛选出 username
字段等于 Steve
的音讯。
SELECT
语句将原始音讯中 city
和 value
字段的值别离赋给了两个新变量:city
和 val
。这两个变量将在接下来创立动作时应用。
为规定绑定 Republish 动作
接下来,咱们须要为规定绑定 Republish
动作,并设置动作的参数:
- 指标主题:
city/${city}
- 载荷模板:
{"temperature": ${val}}
在前一节中,SELECT
语句将 payload.city
和 payload.value
的值别离赋给了两个新变量:city
和 val
。咱们的 Republish
动作应用 ${city}
和 ${val}
占位符来援用这些变量,规定引擎会在执行时将变量的值替换到相应的地位。
测试规定
规定和动作创立结束后,咱们能够向 Broker 发送满足条件的音讯来测验规定是否失效。
咱们将应用 MQTTX 这款 MQTT 客户端工具来进行测试。您能够从这里下载并装置它。
首先,咱们建设一个 MQTT 连贯,将用户名设为“Steve”。
而后,咱们订阅指标主题 city/Stockholm
,并向 notify
主题发送一条音讯:
胜利了!咱们收到了由规定转发过去的音讯:
结语
MQTT 规定引擎是一种弱小的工具,能够依据物联网利用中的特定条件或事件主动触发动作。通过本文的疾速入门指南和示例,您能够轻松上手 EMQX 规定引擎,在物联网我的项目中充分发挥它的劣势。
EMQX Enterprise 规定引擎提供了丰盛的数据集成动作和资源,能够疾速高效地实现大部分与数据处理相干的业务逻辑。咱们强烈推荐您本人摸索和体验。无关规定引擎 SQL 语法的具体文档,请参考 Rule SQL 文档。
版权申明:本文为 EMQ 原创,转载请注明出处。
原文链接:https://www.emqx.com/zh/blog/getting-started-with-rule-engine-in-mqtt-broker