中间件系列——EMQX快速上手(MQTT)

:技术小厨师

关注小厨师,烹饪美味的技术餐

EMQX 介绍

EMQX 是基于 Erlang/OTP 平台开发的开源物联网 MQTT 消息服务器。而 MQTT 实际上是一种应用层协议,用于实现轻量的、发布订阅式的物联网消息协议。事实上,虽然 EMQX 的定位是物联网消息协议 MQTT 的 broker,但是它的处理能力已经超过了它的定义。而在之后的文章中,我们会为读者介绍使用 EMQX 来实现 IM 的推送系统。

本文受限于篇幅,不介绍 MQTT 协议

安装 EMQX

这里为了方便起见,我们只介绍压缩包安装,也方便利用我们前面所提到的 Centos 集群发布机制,

压缩包安装

首先我们打开下面的网站,

?product=broker

然后我们选择我们对应的版本信息,然后下载压缩包即可,下载完成后进行解压即可,

unzip emqx-4.4.2-otp24.1.5-3-el7-amd64.zip

emqx 目录结构如下:

emqx/├── bin # 可执行文件的位置├── data # 存放数据的位置├── dynlibs├── erts-12.1.5├── etc # 配置文件位置及插件配置文件位置├── lib├── log # 日志存放位置└── releases

添加到全局环境变量(可选)

如果读者不太了解 Centos 的环境变量怎么配置,则可以使用下面的脚本修改执行即可,

export EMQX_HOME=#读者 EMQX 的安装位置echo "PATH=\$PATH:$EMQX_HOME\bin" > /etc/profile.d/my_emqx.sh

比如读者的 EMQX 安装位置为 /opt/module/emqx,则对应脚本替换如下,

export EMQX_HOME=/opt/module/emqxecho "PATH=\$PATH:$EMQX_HOME/bin" > /etc/profile.d/my_emqx.sh

接下来就是让环境变量生效即可,

source /etc/profile

启停命令使用

对于中间件,我们上手的使用方法肯定无非就是启动,停止,重启啦。

如果读者没有添加环境变量,那么之后的执行命令,读者都应该以绝对或者相对路径来指明 emqx 可执行文件的位置,譬如下列命令,

./emqx start/opt/module/emqx/bin/emqx start

下面我们尝试启动 emqx,

emqx start

启动成功后,应该看到输出包含以下内容,

EMQ X Broker x.x.x is started successfully!

当修改了配置文件或者其他原因需要重新启动 EMQX 时,使用以下命令,

emqx restart

重启成功后,应该看到输出包含以下内容,

EMQ X Broker 4.4.2 is stopped: okEMQ X Broker 4.4.2 is started successfully!

如果要停止 emqx,可以使用以下命令,

emqx stop

控制台使用

在启动了 emqx 后,我们可以通过访问 18083 端口来使用控制台,

其默认的账号密码为 admin 和 public。

进入到 EMQX 后,我们可以首先将语言改为中文,

下面我们来介绍一下 EMQX dashboard 的各项功能吧。

监控:查看当前运行节点的各项指标客户端:查看已经连接的客户端主题:查看当前活动的主题订阅:查看当前的客户端与主题的订阅情况规则引擎:用SQL构建用于消息流的实时处理,本文不做介绍统计分析:主题的消息流入流出统计信息插件:这里提供了许多 EMQX 的附加功能,本文后续将会使用其中几个插件模块工具:主要包含 EMQX HTTP API 和 WebSocket 即时功能,其中 WebSocket 是一个基于浏览器的 MQTT 客户端工具告警:用于显示一些威胁到 EMQX 稳定运行的事件,比如主机剩余内存告急,CPU 荷载过高等信息。通用:这里包含一些用户管理相关功能,一些端口使用的有效信息。

MQTTX 客户端

有了 MQTT broker 还不够,我们还需要一个好用的 MQTT Client,那么这个这里推荐官方提供的客户端 MQTTX,

安装完成后,界面如下所示,使用方法非常简单,点击左侧 + 按钮,即可创建连接,

其连接的高级功能本文不做介绍,里面涉及一些 MQTT 协议的内容,如果读者了解 MQTT 协议,自然理解里面的一些设置的含义。

连接

作者使用它来连接到本地的 192.168.100.100 虚拟机中的 EMQX,

点击连接后,如果连接成功将会显示如下的内容,

订阅与发布

现在我们再创建一个连接,用来测试之后的订阅与发布功能。现在我们两个连接都已经连接上了 EMQX,

我们通过“添加订阅”功能为两个连接添加同一个订阅,

现在我们通过其中一个连接给主题 test- topic 发送消息,

我们可以看到另一个连接接收到了新的消息,

至此有关 MQTTX 的介绍到此为止。