一、EMQ简介
EMQ 是家面向 5G 和物联网市场的消息与流处理开源软件公司。
EMQ (Erlang/Enterprise/Elastic MQTT Broker) 是基于 Erlang/OTP 平台开发的开源物联网 MQTT 消息服务器。Erlang/OTP 是出色的软实时(Soft-Realtime)、低延时(Low-Latency)、分布式(Distributed) 的语言平台。MQTT 是轻量的(Lightweight)、发布订阅模式(PubSub) 的物联网消息协议。
EMQ 项目设计目标是承载移动终端或物联网终端海量 MQTT 连接,并实现在海量物联网设备间快速低延时消息路由:
- 稳定承载大规模的 MQTT 客户端连接,单服务器节点支持50万到100万连接。
- 分布式节点集群,快速低延时的消息路由,单集群支持1000万规模的路由。
- 消息服务器内扩展,支持定制多种认证方式、高效存储消息到后端数据库。
- 完整物联网协议支持,MQTT、MQTT-SN、CoAP、WebSocket 或私有协议支持
官网:http://emqtt.com
扩展模块与插件
LDAP, MySQL, PostgreSQL, Redis, MongoDB扩展插件集成
二、安装使用
- 前置条件
由于emqttd是用Erlang语言编写的,所以,在Linux下安装时,需要先安装Erlang。
安装Erlang:
# 下载rpm包
[root@localhost ~]# wget https://packages.erlang-solutions.com/erlang/rpm/centos/7/x86_64/esl-erlang_20.3.8.22-1~centos~7_amd64.rpm
# rpm包安装
[root@localhost ~]# rpm -Uvh esl-erlang_20.3-1~centos~7_amd64.rpm
# 安装
[root@localhost ~]# rpm -ivh esl-erlang_20.3.8.22-1~centos~7_amd64.rpm
警告:esl-erlang_20.3.8.22-1~centos~7_amd64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID a14f4fca: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:esl-erlang-20.3.8.22-1 ################################# [100%]
Erlang OTP 20.3.8.22 installed
# 测试
[root@localhost ~]# erl
Erlang/OTP 20 [erts-9.3.3.11] [source] [64-bit] [smp:2:2] [ds:2:2:10] [async-threads:10] [hipe] [kernel-poll:false]
Eshell V9.3.3.11 (abort with ^G)
1>
# 查看安装路径
[root@localhost ~]# whereis erlang
erlang: /usr/lib/erlang /usr/lib64/erlang
EMQ (Erlang/Enterprise/Elastic MQTT Broker) 是基于 Erlang/OTP 平台开发的开源物联网 MQTT 消息服务器。Erlang/OTP 是出色的软实时(Soft-Realtime)、低延时(Low-Latency)、分布式(Distributed) 的语言平台。
下载地址:
https://www.emqx.io/
https://github.com/emqx/emqx
(一) CentOS 安装
文档地址:https://docs.emqx.io/broker/v3/cn/install.html
- 安装
# 安装必须依赖
[root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
# 更新仓库
[root@localhost ~]# yum-config-manager --add-repo https://repos.emqx.io/emqx-ce/redhat/centos/7/emqx-ce.repo
# 查询可用版本
[root@localhost ~]# yum list emqx --showduplicates | sort -r
已加载插件:fastestmirror
已安装的软件包
可安装的软件包
* updates: mirrors.neusoft.edu.cn
Loading mirror speeds from cached hostfile
* extras: mirrors.neusoft.edu.cn
* epel: mirrors.njupt.edu.cn
emqx.x86_64 3.2.3-1.el7 emqx-ce-stable
emqx.x86_64 3.2.3-1.el7 @emqx-ce-stable
emqx.x86_64 3.2.2-1.el7 emqx-ce-stable
emqx.x86_64 3.2.1-1.el7 emqx-ce-stable
emqx.x86_64 3.2.0-1.el7 emqx-ce-stable
emqx.x86_64 3.1.2-1.el7 emqx-ce-stable
emqx.x86_64 3.1.1-1.el7 emqx-ce-stable
emqx.x86_64 3.1.0-1.el7 emqx-ce-stable
emqx.x86_64 3.0.1-1.el7 emqx-ce-stable
emqx.x86_64 3.0.0-1.el7 emqx-ce-stable
# 安装最新版emqx
[root@localhost ~]# yum install emqx
# 安装指定版本
yum install emqx-3.1.0
- 启动测试
# 启动emqx
[root@localhost ~]# systemctl start emqx
三、Web 管理控制台(Dashboard)
EMQ X 消息服务器默认占用的 TCP 端口包括:
端口 | 说明 |
---|---|
1883 | MQTT 协议端口 |
8883 | MQTT/SSL 端口 |
8083 | MQTT/WebSocket 端口 |
8080 | HTTP API 端口 |
18083 | Dashboard 管理控制台端口 |
EMQ 消息服务器启动后,会默认加载 Dashboard 插件,启动 Web 管理控制台。用户可通过 Web 控制台,查看服务器运行状态、统计数据、客户端(Client)、会话(Session)、主题(Topic)、订阅(Subscription)、插件(Plugin)。
使用指南:
https://docs.emqx.io/tutorial/v3/cn/
http://192.168.77.132:18083/
默认的登录名是 admin 和密码是 public。
-
设置中文
-
查看连接
EMQTT服务开机自动启动
[root@localhost testbroker]# systemctl enable emqx