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进行调用的
然后我们在EMQX的规则引擎中新建资源,我这里用到的EMQX版本为4.2.7
如图,只需要大家修改IP地址即可
然后我们新建规则,我们假设设备的主题为 sensor/data,新建规则如下
然后在下方新增响应动作
注意:一定要写成 数据库名.表名 否则会不生效的,原因官方文档里写了,请仔细看第一张图
然后我们模拟设备发送消息,我这里用mqttx模拟
我这里模拟设备发送了三条信息,分别是15、16、17,然后我们查看表中是否插入了数据
大功告成,我这里只是举了一个简单的例子,大家根据自己的业务场景修改sql即可