目的:验证EMQX企业版将消息持久化到mysql数据库。

准备工作:需要一台linux服务器,并且安装了mysql数据库

企业版相对于开源版本功能更加强大,数据库持久化是企业版独有的功能,所以这里选择了企业版来试用。

1、下载EMQX

选择适合linux系统版本的emqx版本,我这里选择的emqx是v4.4.5版本,适用于ubuntu18.04的操作系统

emq 查看发布内容_ubuntu

获取下载链接,然后在ubuntu通过命令下载安装包:

wget https://www.emqx.com/zh/downloads/enterprise/4.4.5/emqx-ee-4.4.5-otp24.1.5-3-ubuntu18.04-amd64.deb

2、安装EMQX

sudo apt install ./emqx-ee-4.4.5-otp24.1.5-3-ubuntu18.04-amd64.deb

3、运行EMQX

sudo emqx start

4、验证emqx是否启动

在ubuntu系统打开浏览器,输入地址:http://127.0.0.1:18083/,能打开则表示服务安装成功,界面如下:

emq 查看发布内容_emq 查看发布内容_02

5、输入默认账户admin,密码public进入EMQX的web管理系统。

6、在系统中工具栏,点击websocket,连接配置那里点击连接,建立服务端MQTT协议连接,用于服务MQTT客户端消息发布。

emq 查看发布内容_运维_03

7、订阅一个主题 

在连接建立之后,往下拉动,可以看到订阅的输入窗口,填写信息,点击订阅:

emq 查看发布内容_ubuntu_04

8、安装MQTT客户端 

 我这里用的在线的MQTT客户端,不需要下载安装就能测试,地址:Easy-to-Use Online MQTT Client | Try Now

9、新建客户端连接

emq 查看发布内容_emq 查看发布内容_05

10、给服务端发布一个消息

emq 查看发布内容_运维_06

11、查看服务端是否正常收到消息,如下图所示,说明正常收到消息了。

emq 查看发布内容_linux_07

 12、建立资源

在规则引擎-》资源下面,新建资源,这里我们选的是数据持久化到mysql,需要填写mysql服务器相关信息,

emq 查看发布内容_企业版_08

13、在emqx数据库新建一张测试表,用于接收消息,并持久化,以下是我的表结构: 

emq 查看发布内容_linux_09

 14、建立规则

规则基于SQL语法,确定消息需要做什么处理,处理完之后,需要触发什么动作。以下规则意思是提取主题test/a中的msg字段内容。

emq 查看发布内容_运维_10

 15、新建动作

建立规则之后,需要新建动作,指示消息需要去往哪里,这里选择数据持久化,然后选择上面新建的mysql资源,

emq 查看发布内容_linux_11

然后填写SQL模板,标准的SQL语法,如下所示:

emq 查看发布内容_ubuntu_12

最后确定保存即可生效。

16、测试数据持久化功能

在MQTT客户端给主题test/a发送一条消息:

emq 查看发布内容_linux_13

在mysql数据库查看消息是否持久化,

emq 查看发布内容_企业版_14

可以看到消息被正常保存了,说明实验成功!

17、查看日志

使用命令:vim /var/log/emqx/emqx.log.1

总结:EMQX企业版相对于开源版来说,功能确实更加强大了,企业版毕竟是要收费的,下一步考虑使用开源版,自己建个MQTT的客户端,将收到的消息持久化到Mysql。