1.起因

现目前我们的物联网系统架构为传感器数据传到我们自己的网关,然后用RabbitMQ分发给业务系统进行存库,这几天了解到TDengine数据库为我们提供了Restful接口,那么我们完全可以利用EMQX的规则引擎功能,直接将数据存库而不需要经过系统,这样中间的流程就少了一步,废话不说直接开干

2.过程

安装EMQX、TDengine这些我之前写的博客都有提到过,不会安装的请先参考之前的文章

安装EMQX:https://www.yuque.com/happydragon1994/eoaqvb/cgb7g4

安装TDengine:https://www.yuque.com/happydragon1994/eoaqvb/sgqt0s


首先我们先看一下,TDengine是如何通过Restful进行调用的
1.png
然后我们在EMQX的规则引擎中新建资源,我这里用到的EMQX版本为4.2.7
2.png
如图,只需要大家修改IP地址即可

然后我们新建规则,我们假设设备的主题为 sensor/data,新建规则如下
3.png
然后在下方新增响应动作
4.png
注意:一定要写成 数据库名.表名 否则会不生效的,原因官方文档里写了,请仔细看第一张图

然后我们模拟设备发送消息,我这里用mqttx模拟
5.png
我这里模拟设备发送了三条信息,分别是15、16、17,然后我们查看表中是否插入了数据
6.png
大功告成,我这里只是举了一个简单的例子,大家根据自己的业务场景修改sql即可