EMQ X
在消息发布、事件触发时将触发规则引擎,满足触发条件的规则将执行各自的
SQL 语句筛选并处理消息和事件的上下文信息。
规则引擎借助响应动作可将特定主题的消息处理结果存储到数据库,发送到
HTTP Server,转发到消息队列 Kafka 或
RabbitMQ,重新发布到新的主题甚至是另一个 Broker
集群中,每个规则可以配置多个响应动作。
1. 选择发布到 't/#' 主题的消息,并筛选出全部字段:
SELECT * FROM "t/#"
2. 选择发布到 't/a' 主题的消息,并从 JSON
格式的消息内容中筛选出 "x" 字段:
SELECT payload.x as x FROM "t/a"
规则引擎使用 $events/ 开头的虚拟主题(事件主题)处理
EMQ X
内置事件,内置事件提供更精细的消息控制和客户端动作处理能力,可用在
QoS 1 QoS 2 的消息抵达记录、设备上下线记录等业务中。
1. 选择客户端连接事件,筛选 Username 为 'emqx'
的设备并获取连接信息:
SELECT clientid, connected_at FROM
"$events/client_connected" WHERE username =
'emqx'
规则引擎和 SQL 语句的详细教程参见 EMQ X 文档。