原文参考,加入了部分对报错的处理(黄底部分):http://xiangcun168.blog.51cto.com/4788340/1923607
配置两台主机hosts
192.168.0.10 s1.emqtt.io192.168.0.20 s2.emqtt.io
安装配置(s1.emqtt.io):
安装依赖包 # yum install -y lksctp-tools 安装
报错1:采用rpm包安装时报错file /etc/init.d from install of emqttd-2.2-1.el6.x86_64 conflicts with file from package chkconfig-1.3.49.3-2.el6_4.1.x86_64
解决:采用源码安装
# unzip emqttd-centos6.8-v2.1.2.zip #cd emqttd#vi etc/emq.confnode.name = emqttd@s1.emqtt.io或node.name =
emqttd@192.168.0.10
同理配置s2.emqtt.io,分别启动两台节点
启动# bin/emqttd startemqttd 2.1.2 is started successfully!EMQ 消息服务器进程状态查询:# ./bin/emqttd_ctl statusNode ‘emqttd@s1.emqtt.io‘ is startedemqttd 2.1.2 is running
有时显示启动成功,但查看状态为失败,检查1883端口是否被占用,可参考log目录下的error日志。
加入集群
emqttd@s2.emqtt
.io上执行:
# bin/emqttd_ctl cluster join emqttd@s1.emqtt.ioJoin the cluster successfully.Cluster status: [{running_nodes,[‘emqttd@s1.emqtt.io‘,‘emqttd@s2.emqqt.io‘]}]
#bin/emqttd_ctl cluster join emqttd@s2.emqtt.ioJoin the cluster successfully.Cluster status: [{running_nodes,[‘emqttd@s1.emqtt.io‘,‘emqttd@s2.emqtt.io‘]}]
bin/emqttd_ctl cluster join emqttd@192.168.1.31
任意节点上查询集群状态:
#
bin/emqttd_ctl cluster status
Cluster status: [{running_nodes,[‘emqttd@s1.emqtt.io‘,‘emqttd@s2.emqtt.io‘]}]
节点退出集群
节点退出集群,两种方式:
- leave: 本节点退出集群
- remove: 从集群删除其他节点
emqttd@s2.emqtt
.io主动退出集群:
#bin/emqttd_ctl cluster leaveLeave the cluster successfully.Cluster status: [{running_nodes,[‘emqttd@s2.emqqt.io‘]}]
或emqttd@s1.emqtt.io节点上,从集群删除emqttd@s2.emqtt.io节点:
#bin/emqttd_ctl cluster remove
emqttd@s2.emqtt.io
实际执行时,没有了remove命令,执行如下命令删除节点:
bin/emqttd_ctl cluster force-leave emqttd@192.168.1.22
防火墙设置
如果集群节点间存在防火墙,防火墙需要开启4369端口和一个TCP端口段。4369由epmd端口映射服务使用,TCP端口段用于节点间建立连接与通信。
防火墙设置后,EMQ 需要配置相同的端口段,emqttd/etc/emq.conf文件:
## Distributed node port rangenode.dist_listen_min = 6000node.dist_listen_max = 6999
注意事项: NetSplit
EMQ消息服务器集群需要稳定网络连接以避免发生NetSplit故障。集群设计上默认不自动处理NetSplit,如集群节点间发生NetSplit,需手工重启某个分片上的相关节点。
EMQTTD 集群验证
10消息,20订阅 10写入消息# mosquitto_pub -t topicTest07 -m Message05 -h 192.168.0.10 -p 1883
mosquitto_pub -t topicTest07 -m Message05 -h 192.168.1.22 -p 1883
20订阅查看# mosquitto_sub -v -t topicTest07 -h 192.168.0.20 -p 1883
mosquitto_sub -v -t
topicTest07 -h 192.168.1.31 -p 1883
可在测试23主机上进行述验证:
mosquitto_pub -t topicTest07 -m Message05 -h
192.168.1.23
-p 1883
mosquitto_sub -v -t
topicTest07 -h 192.168.1.23 -p 1883
topicTest07 Message05 20消息,10订阅20写入消息# mosquitto_pub -t topicTest08 -m Message06 -h 192.168.0.20 -p 188310订阅查看# mosquitto_sub -v -t topicTest08 -h 192.168.0.10 -p 1883topicTest08 Message06
EMQTTD 状态监测
状态监测可通过自带的WEB进行监测
还有通过控制台:
默认账户与密码:admin/public
控制台信息比较全,自己发现吧