:技术小厨师
关注小厨师,烹饪美味的技术餐
目录
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.zipemqx 目录结构如下:
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 的介绍到此为止。