Emqx安装和配置
文章目录
做过 aiot 的同学,必然对 mqtt 协议不陌生,那如何基于 mqtt 有一套自己的通信服务,但是对于大多数的公司来说,自己开发一套这样的服务,太费人力资源,时间上也拖的太长,那有没有什么现成的方案?
答案是当然有,现在有不少 mqtt 的 Broker,直接上手就可以使用,性能稳定配置简单,支持集群,几分钟就能搞定一套 mqtt 服务。今天要给大家介绍的其中一个 Broker 就是 EMQX,下面我们开始介绍如何安装以及配置吧。
emqx 安装
emqx 的安装非常简单,可以通过命令行安装,也可以通过下载安装包进行安装,安装过程可以到官网参考,都比较详细。
如下是 CentOS 的安装下载地址和流程。
https://www.emqx.io/downloads?os=CentOS

emqx start 成功之后,直接访问 http://127.0.0.1:18083 即可看到 emqx 的 dashboard
emqx 集群配置
首先我们先搞两台机器,然后我们在两台机器上启用以下端口
1883 MQTT 协议端口
8883 MQTT/SSL 端口
8083 MQTT/WebSocket 端口
8080 HTTP API 端口
18083 Dashboard 管理控制台端口
详细配置说明官网:
https://www.emqx.io/docs/en/v4.4/configuration/configuration.html#cluster
如下进行主要配置说明。
emqx 主配置说明:vim etc/emqx.conf
# 集群名称
cluster.name = emqx
# Node发现方式
# 集群相关说明:https://www.emqx.io/docs/en/v4.4/getting-started/cluster.html#node-discovery-and-autocluster
cluster.discovery = static
# 当前节点名称
node.name = emqx@10.11.6.198
# 集群节点列表
cluster.static.seeds = emqx@10.11.6.198,emqx@10.11.6.183
# MQTT 协议端口
listener.tcp.external = 1883
# MQTT/SSL 端口
listener.ssl.external = 0.0.0.0:8883
# MQTT/WebSocket 端口
listener.ws.external = 8083
emqx dashboard 配置说明:vim etc/plugins/emqx_dashboard.conf
# dashboard 登录用户名密码
dashboard.default_user.login = userxxxx
dashboard.default_user.password = pwdxxxx
# dashboard http 端口
dashboard.listener.http = 18083
emqx management 配置说明:vim etc/plugins/emqx_management.conf
management.listener.http = 8084
配置完成后启动:
./bin/emqx start
查询状态:
./bin/emqx_ctl status
输出如下: Node ’emqx@10.11.6.198’ is started emqx 4.0.3 is running
查询集群状态:
./bin/emqx_ctl cluster status
输出如下: Cluster status: #{running_nodes => [’emqx@10.11.6.183’,’emqx@10.11.6.198’], stopped_nodes => []}
详细命令行说明:https://www.emqx.io/docs/en/v4.4/advanced/cli.html#cluster-command
添加用户鉴权
利用 emqx user xxx 命令进行。
user list List username auth rules
user add <Username> <Password> Add username auth rule
user update <Username> <Password> Update username auth rule
user del <Username> <Password> Delete username auth rule
注意点
有的时候发现 start 不成功,看日志一直是无响应,这个时候可能是你在启动后修改了配置,需要停止 emqx 服务,但是直接 stop 或者 kill 后重新 start,问题还在,这个时候可以进行如下操作:
1、先 kill 2、执行 ./bin/emqx console 3、Ctrl + C 退出 4、按操作进行 kill
如上 emqx 真正退出后再重新 start,这个问题就没有了。
emqx压力测试

详细说明: https://www.emqx.io/docs/en/v4.4/tutorial/benchmark.html#compile-and-install
客户端测试mqtt工具
文章作者 Brook
上次更新 2022-06-30