#EMQ X集群安装
2018-12-17 本文已影响0人
运维狗Bazinga
EMQ X集群安装
EMQ X R3.0 消息服务器简介
```
EMQ X (Erlang/Enterprise/Elastic MQTT Broker) 是基于 Erlang/OTP 平台开发的开源物联网 MQTT 消息服务器。
Erlang/OTP 是出色的软实时(Soft-Realtime)、低延时(Low-Latency)、分布式(Distributed) 的语言平台。
MQTT 是轻量的(Lightweight)、发布订阅模式(PubSub) 的物联网消息协议。
EMQ X 项目设计目标是承载移动终端或物联网终端海量 MQTT 连接,并实现在海量物联网设备间快速低延时消息路由:
稳定承载大规模的 MQTT 客户端连接,单服务器节点支持50万到100万连接。
分布式节点集群,快速低延时的消息路由,单集群支持1000万规模的路由。
消息服务器内扩展,支持定制多种认证方式、高效存储消息到后端数据库。
完整物联网协议支持,MQTT、MQTT-SN、CoAP、WebSocket 或私有协议支持
```
环境准备
centos 7.2 3台
软件版本:emqx-centos7-v3.0-rc.5.x86_64.rpm 下载地址
安装步骤
```
1. rpm -ivh emqx-centos7-v3.0-rc.5.x86_64.rpm ## 使用rpm包格式安装
2. emqx的相关目录路径
/etc/emqx #存放配置文件插件等等
/var/lib/emqx #数据路径,建议用软连接链接到数据盘
/var/log/emqx #日志路径,建议用软连接链接到数据盘
```
cd /var/lib/
mv emqx/ /data/soft/emqx/
ln -s /data/soft/emqx/ emqx/
cd /var/log
mv emqx/ /data/soft/emqx/logs/
ln -s /data/soft/emqx/logs emqx/
```
3.配置文件 cat /etc/emqx/emqx.conf ,修改以下参数
```
node.name = emqx@10.10.63.16 //名字将作为加入集群的身份标识,使用当前节点主机IP地址。
zone.external.max_mqueue_len = 0 //emqx server 消费队列长度,如果队列满了, 消息会被丢弃. 0是无上限
zone.external.session_expiry_interval = 12h //session持久化时间,增大至12小时
zone.external.max_inflight = 128 //增加飞行窗口大小,主要作用于Qos 1,2 的消息,存储发送但还没有给回执的消息的队列大小
zone.external.await_rel_timeout = 600s //客户端等待服务端对于Qos2消息发送消息释放的等待时间,超过时间消息会被drop掉。
//这些都是开发爸爸要求改的,我完全不懂是什么意思!
```
4. 启动服务 systemctl start emqx.service
5. 集群操作:
加入集群emqx_ctl cluster join emqx@10.10.63.16 //在实际操作时大概需要A Join B, B Join C。
查看集群运行状态:emqx_ctl cluster status,得到如下返回
Cluster status: [{running_nodes,['emqx@10.10.69.11','emqx@10.10.133.81',
'emqx@10.10.63.16']}]
6. 服务开启密码验证:
vi /etc/emqx/plugins/emqx_auth_username.conf
```
##--------------------------------------------------------------------
## Username Authentication Plugin
##--------------------------------------------------------------------
## Examples:
auth.user.1.username = xxxx
auth.user.1.password = xxxxxxxxx
```
```
遇到的问题
1. tcp/1883端口无法启动
解决办法,进入 /var/lib/emqx/mnesia目录,删除该目录下所有内容。并重新启动服务。
2. 加入集群报错。
解决办法: 同上,并且在不同节点上互相join