edgexfoundry之Kuiper Rules Engine

写在前面:
edgex的规则引擎rules engine从Geneva版本开始弃用,转而使用Kuiper Rules Engine

Kuiper Rules Engine

EMQ X Kuiper是新的EdgeX参考实现规则引擎(或边缘分析)实现(替换了包含Java Drools引擎的支持规则引擎)。

EMQ X Kuiper是一个轻量级的开源软件(Apache 2.0开源许可协议)软件包,用于在Go lang中实现的物联网边缘分析和流处理,可以在各种资源受限的边缘设备上运行。用户可以在边缘实现快速的数据处理并以SQL编写规则。 Kuiper规则引擎基于Source,SQL和Sink三个组件。

  • Source: 流数据的源,例如来自MQTT服务器的数据。对于EdgeX,数据源是EdgeX消息总线,可以通过ZeroMQ或MQTT实现。
  • SQL: SQL是处理指定业务逻辑的地方。 Kuiper提供了SQL语句来提取,过滤和转换数据。
  • Sink: 用于将分析结果发送到特定目标,例如将分析结果发送到EdgeX的Command服务或云中的MQTT代理;

Kuiper中Source,SQL和Sink之间的关系如下所示。

edgexfoundry之Kuiper Rules Engine

Kuiper rules engine of EdgeX

扩展机制允许对Kuiper进行自定义,以分析和处理来自不同数据源的数据。默认情况下,对于EdgeX配置,Kuiper分析来自EdgeX消息总线的数据。 EdgeX提供抽象消息总线接口,并分别实现ZeroMQ和MQTT协议以支持不同微服务之间的信息交换。 Kuiper和EdgeX的集成主要包括以下内容:

  • 扩展EdgeX消息总线源以支持从EdgeX消息总线接收数据。默认情况下,Kuiper侦听应用程序服务在其上发布消息的端口5566。核心数据服务中的数据由应用程序服务处理后,将流入Kuiper规则引擎进行处理。

  • 从Core Contract Service读取数据类型定义,将EdgeX数据转换为Kuiper数据类型,然后根据用户指定的规则进行处理。

  • Kuiper支持将分析结果发送到其他接收器(Sink)

  • 用户可以选择将分析结果发送到命令服务以控制设备;

  • 可以将分析结果发送到EdgeX消息总线接收器,以供其他微服务进行进一步处理。

  • edgexfoundry之Kuiper Rules Engine

Learn more

For more information on the EMQ X Kuiper project, please refer to the following resources.

上一篇:prometheus 告警模板解读


下一篇:fiddler弱网测试