EMQ X 介绍
EMQ X (Erlang/Enterprise/Elastic MQTT Broker) 是基于 Erlang/OTP 平台开发的开源物联网 MQTT 消息服务器。Erlang/OTP 是出色的软实时 (Soft-Realtime)、低延时 (Low-Latency)、分布式 (Distributed) 的语言平台。MQTT 是轻量的 (Lightweight)、发布订阅模式 (PubSub) 的物联网消息协议。
EMQ X 面向海量的 移动 / 物联网 / 车载 等终端接入,并实现在海量物理网设备间快速低延时的消息路由:
- 稳定承载大规模的 MQTT 客户端连接,单服务器节点支持百万连接。
- 分布式节点集群,快速低延时的消息路由,单集群支持千万规模的路由。
- 消息服务器内扩展,支持定制多种认证方式、高效存储消息到后端数据库。
- 完整物联网协议支持,MQTT、MQTT-SN、CoAP、LwM2M、私有 TCP/UDP 协议支持。
EMQ X 安装
下面将采用ZIP包的方式在centos 7 的系统上安装
通过 emqx.io 或 github 下载要安装的 EMQ X Broker 版本的 zip 包。
解压程序包
1
unzip emqx-centos7-v4.0.1.zip
启动 EMQ X Broker
1
2
3
4
5
6
7
8
9
10# 启动
./bin/emqx start
EMQ X Broker v4.0.1 is started successfully!
# 查看运行状态
./bin/emqx_ctl status
Node 'emqx@127.0.0.1' is started
emqx 4.0.1 is running停止 EMQ X Broker
1
./bin/emqx stop
卸载 EMQ X Broker
直接删除 EMQ X Broker 目录即可
EMQ X Dashboard
EMQ X Dashboard 是一个 Web 应用程序,你可以直接通过浏览器来访问它,无需安装任何其他软件。
当 EMQ X Broker 成功运行在你的本地计算机上且 EMQ X Dashboard 被默认启用时,你可以访问 http://localhost:18083 来查看你的 Dashboard,默认用户名是 admin,密码是 public。
注意: linux系统需要打开端口或者关闭防火墙才能访问。
EMQ X Broker 基本命令
名称 | 含义 |
---|---|
emqx start | 后台启动 EMQ X Broker |
emqx stop | 关闭 EMQ X Broker |
emqx restart | 重启 EMQ X Broker |
emqx console | 使用控制台启动 EMQ X Broker |
emqx foreground | 使用控制台启动 EMQ X Broker,与 emqx console 不同,emqx foreground 不支持输入 Erlang 命令 |
emqx ping | Ping EMQ X Broker |
EMQ X Broker 配置
所有对 EMQ X 的配置都可以通过修改配置文件完成。配置文件的位置:
- etc/emqx.conf : EMQ X 服务器的参数设置
- etc/acl.conf : EMQ X Broker 默认 ACL 规则配置文件
- etc/plugins/*.conf : EMQ X 插件配置文件,每个插件都有单独的配置文件。
一些常用功能的配置也在 Web Dashboard 上进行修改。
配置端口
在安装以后,EMQ X 默认会使用以下端口:
- 1883: MQTT 协议端口
- 8883: MQTT/SSL 端口
- 8083: MQTT/WebSocket 端口
- 8084: MQTT/wss 端口
- 8081: HTTP API 端口
- 18083: Dashboard 管理控制台端口
按照安装环境需要,可以修改以上端口。
修改协议端口请编辑 EMQ X 系统配置文件’etc/emqx.conf’,找到以下各行,并按需要修改端口号:
1 | listener.tcp.external = 0.0.0.0:1883 |
修改 HTTP API 端口请编辑 emqx_management 插件的配置文件’etc/plugins/emqx_management.conf’,找到下述行,并按需修改端口号:
1 | management.listener.http = 8081 |
修改 Dashboard 管理控制台端口请编辑 emqx_dashboard 插件的配置文件’etc/plugins/emqx_dashboard.conf’, 找到下述行,并按需修改端口号:
1 | dashboard.listener.http = 18083 |