专业的SQL Server、MySQL数据库同步软件
前言:我写了一篇有关MySQL数据库中EMQX数据持久性的文章,但是由于此功能,需要EMQX
企业版只能实现,而对于像我这样的学生聚会来说,企业版的成本确实很难。因此,我找到了另一种在EMQX Official中保存数据的方法。 Webhooks官方网站示例
基本知识:
http协议和格式
Web服务器:Web项目的基本结构
Java
tomcat安装:用于Windows系统的tomcat,用于Linux系统的tomcat
开发环境:eclipse官方网站下载
认为:设备数据已上传到emqx服务器,我们需要一个Web服务器从EMQX服务器接收数据,然后将数据保存到数据库。
文章结构如下:
构建一个简单的Web服务器
部署Web服务器以在主机上运行
在EMQX控制台中配置规则引擎,以过滤出特定数据并通过Web钩子将其发送到Web服务器
首先在主机上安装tomcat和java jdk,这是构建Web服务器的必要环境。
在线上有许多特定的安装方法,并找到适合您的一种。这里仅介绍Web服务器的构造。
已经设置好环境的学生,请跳过此步骤
假设您已完成上述环境部署,则还需要安装eclipse,然后选择在安装程序中安装eclipse ee。这是专门为Web开发设计的开发软件。
打开Eclipse,创建一个新项目,然后选择Dynamic Web Project
给项目命名,目标运行时选择主机上安装的tomcat版本。如果要在云主机上安装tomcat,建议在本地计算机上安装相同版本的tomcat,以方便调试。
下一步一直到下一步,最后,请记住检查此页面上的generate。 。 。 。 。
web.xml是用于配置Web服务器的文件,而Java资源是用于放置Java文件的文件
在此lib文件夹中添加所需的库文件,然后将库文件导入到项目中。
库文件百度SkyDrive
链接:https://pan.baidu.com/s/1mK4Yyp6_DqBjxiW-pr0BhA
提取代码:l3rh
mysql-connector-java-5.1.28.jar:
链接:https://pan.baidu.com/s/1XPcJdrnDlmyXkKP5psF95Q
提取代码:nq3d
图片_ <
右键单击项目,选择属性,选择Java构建路径,单击添加jar在项目lib中找到库文件,全部添加,最后应用并关闭,导入库文件就完成了!
//img-blog.csdnimg.cn/20190925215550210.pngx-oss-process=图像/水印,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L80_0d alt =
接下来,编写一个Java类myhttpservlet,该类从HttpServlet继承,首先粘贴代码,有关特定逻辑,请参见代码注释
HttpServlet是实现http协议的最重要的Java类
您可以参考此博客httpservlet以获取详细说明
创建一个名为dbutil的新Java类。此类用于操作数据库。这里仅进行写操作以将数据插入数据库。可以执行其他操作,例如更新,删除和查询
如下所示在web.xml中添加内容。这里应该注意,应用程序和名称可以随意取用,主要供程序员查找。
myweb.myhttpservlet的前面是您的项目名称。后面是我们刚刚编写的myhttpservlet类。
是一个将名为app的httpservlet类映射到url的路径,/first表示当您在浏览器中键入时:http://您的Web服务器ip地址:端口号/首先,将执行myhttpservlet类中的内容。
本地部署:右键单击该项目,选择export》 war文件浏览并将其保存到要保存的位置,系统将生成一个.war文件,我们将该文件放入apache-tomcat-8.5.45文件夹)在webapps文件夹下。
远程云主机部署:使用xftp将war文件放在同一路径中,然后重新启动tomcat。
登录到emqx远程控制台,在规则引擎中创建新规则,规则引擎将处理满足条件的mqtt消息,然后我们将定义特定的处理操作
图片插入
这句话的意思是在主题为csdn的mqtt消息的内容中选择与备注,app_id和其他键相对应的值(我们需要将mqtt消息格式设置为json格式),并分配这些值到变量remark,app_id等。稍后,当我们使用post方法将数据发送到Web服务器时,数据格式也是json格式{” remark”:” killer”,” app_id”:” 37264726374″ }
插入图片
我们还可以测试,测试输出的json数据是否是我们需要的
图片
下一步是添加一个动作,这是将数据发送到Web服务器的特定操作。如果mqtt消息符合规则条件,则将触发该操作。单击”添加”,选择将数据发送到Web服务的操作,单击”新建资源”,键入webhook,请求方法为post,
请求url是您的Web服务器ip,端口号(tomcat的默认端口为8888,在这里我更改为8090),加上/在上面我们的web.xml中设置的第一个
发布消息将触发对myhttpservlet类中的dopost方法的调用。
测试连接可用后,单击”新建”,最后创建规则
然后转到您的数据库以查看是否存储了数据。