ThingsBoard3.9.1规则节点kafka发送消息

        最近在整理thingsboard课程,基于最新thingsboard版本3.9.1/4.0,欢迎大家收藏关注我提问在评论区留言,我争取把最新、最准、最好的课程,呈现在各位亦师亦友的csdn广大读者面前。

本章节讲述:外部规则节点kafka。

本节点:推送消息到kafka。

传入消息类型可以是任何类型。

在规则链中增加一个kafka节点,相当于在平台上启动一个kafka client(做为生产者producer),此处client会主动连接kafka cluster。

本章节运行/测试环境:thingsboard3.9.1 CE / Kafka-2.13-3.9.0 / zookeeper-3.9.3-bin

Kafka架构图如下:

在规则链中增加一个kafka节点,如下:

说明:

        主题模式Topic pattern*:可以是静态字符串,也可以是使用消息元数据属性解析的模式。例如 ${deviceType}

        引导服务Bootstrap servers*:kafka代理服务器。如果多个就逗号隔开。

        失败重试Automatically retry times if fails: 10

        本地缓存时间Time to buffer locally (ms):500

        Number of acknowledgments*

        Key serializer*

        Value serializer*

        其他属性Other properties(可选):连接kafka所需要的其他参数,以kv方式填写。

       

        模板变量支持如下:

Kafka发送的 Key 和 Value 字段,支持动态模板填充,比如:

${msg} → 消息的body内容

${metadata} → 消息的元数据(通常是JSON字符串)

${msgType} → 消息类型,如 POST_TELEMETRY_REQUEST、

ATTRIBUTES_UPDATED 等

${entityId} → 实体ID(设备、资产等)

${entityName} → 实体名称

对于上述变量,可以自由组合,比如:

设备${entityName}上报数据: ${msg}。

应用场景测试:

offset explorer客户端软件打开,添加kafka和zookeeper,连接,如下,

准备Jmeter,测试 Test Deivce T1,如下:

规则链配置,如下:

当Jmeter发送消息成功之后,在系统中可以看到最新遥测数据,如下:

在规则链中跟踪kafka节点的事件消息,如下:

1:

{

    "Seqno": 6,

    "BusVoltage": 378,

    "humidity": 27,

    "temperature": 64

}

2:

{

    "deviceName": "Test Device A1",

    "deviceType": "default",

    "ts": "1745929293214"

}

3:

{

    "Seqno": 6,

    "BusVoltage": 378,

    "humidity": 27,

    "temperature": 64

}

4:(在OUT消息的元数据中增加了以下蓝色字体三个字段

{

    "deviceName": "Test Device A1",

    "deviceType": "default",

    "offset": "0",

    "partition": "0",

    "topic": "my-topic",

    "ts": "1745929293214"

}

在Offset Explorer界面上可以看到,kafka收到了消息,如下:

说明:

使用kafka-console-consumer.bat查看或订阅kafka某个topic。

# 如果没有任何返回或没有响应,则该topic中没有数据内容;

# 如果有回应数据,则回应内容就是该topic中的数据内容;

比如:

kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic my-topic --from-beginning

执行命令如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值