规则引擎组成
使用 EMQ X 的规则引擎可以灵活地处理消息和事件。使用规则引擎可以方便地实现诸如将消息转换成指定格式,然后存入数据库表,或者发送到消息队列等。
与 EMQ X 规则引擎相关的概念包括: 规则(rule)、动作(action)、资源(resource) 和 资源类型(resource-type)。
规则、动作、资源的关系:
规则: {
SQL 语句,
动作列表: [
{
动作1,
动作参数,
绑定资源: {
资源配置
}
},
{
动作2,
动作参数,
绑定资源: {
资源配置
}
}
]
}
- 规则(Rule): 规则由 SQL 语句和动作列表组成。动作列表包含一个或多个动作及其参数。
- SQL 语句用于筛选或转换消息中的数据。
- 动作(Action) 是 SQL 语句匹配通过之后,所执行的任务。动作定义了一个针对数据的操作。 动作可以绑定资源,也可以不绑定。例如,“inspect” 动作不需要绑定资源,它只是简单打印数据内容和动作参数。而 “data_to_webserver” 动作需要绑定一个 web_hook 类型的资源,此资源中配置了 URL。
- 资源(Resource): 资源是通过资源类型为模板实例化出来的对象,保存了与资源相关的配置(比如数据库连接地址和端口、用户名和密码等) 和系统资源(如文件句柄,连接套接字等)。
- 资源类型 (Resource Type): 资源类型是资源的静态定义,描述了此类型资源需要的配置项。
动作和资源类型是由 emqx 或插件的代码提供的,不能通过 API 和 CLI 动态创建。