EMQ X 3.2 版本引入了 “规则引擎” 功能,支持在 EMQ X Broker 筛选终端上报的数据,处理后流至后端数据库或其他的消息队列。本篇以具体场景来说明 “如何使用规则引擎将消息转发至 Kafka”
场景介绍
该场景需要将 EMQ X 指定主题下且满足条件的消息桥接到 Kafka 。为了便于后续分析检索,消息内容需要进行拆分。
该场景下设备端上报信息如下:
-
上报主题:cmd/state/:id,主题中 id 代表车辆客户端识别码
-
消息体:
{ "id": "NXP-058659730253-963945118132721-22", // 客户端识别码 "speed": 32.12, // 车辆速度 "direction": 198.33212, // 行驶方向 "tachometer": 3211, // 发动机转速,数值大于 8000 时才需存储 "dynamical": 8.93, // 瞬时油耗 "location": { // GPS 经纬度数据 "lng": 116.296011, "lat": 40.005091 }, "ts": 1563268202 // 上报时间 }
当上报数据发动机转速数值大于 8000
时,存储当前信息以便后续分析用户车辆使用情况。
准备工作
创建Kafka主题
./bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --topic 'emqx_rule_engine_output' --partitions 1 --replication-factor 1
创建 Kafka Rule 之前必须先在 Kafka 中创建好主题,否则创建 Kafka Rule 失败。
配置说明
创建资源
打开 EMQ X Dashboard,进入左侧菜单的 资源 页面,点击 新建</