安装包下载地址:
- http://emqtt.com/downloads
在这里我们下载emqttd-centos6.8-v2.1.2.zip
配置两台主机hosts
- 192.168.0.10s1.emqtt.io
- 192.168.0.20s2.emqtt.io
安装配置(s1.emqtt.io):
- 安装依赖包
- #yuminstall-ylksctp-tools
- 安装
- #unzipemqttd-centos6.8-v2.1.2.zip
- #cdemqttd
- #vietc/emq.conf
- node.name=emqttd@s1.emqtt.io或node.name=emqttd@192.168.0.10
同理配置s2.emqtt.io,分别启动两台节点
- 启动
- #bin/emqttdstart
- emqttd2.1.2isstartedsuccessfully!
- EMQ消息服务器进程状态查询:
- #./bin/emqttd_ctlstatus
- Node'emqttd@s1.emqtt.io'isstarted
- emqttd2.1.2isrunning
加入集群
emqttd@s2.emqtt.io上执行:
- #bin/emqttd_ctlclusterjoinemqttd@s1.emqtt.io
- Jointheclustersuccessfully.
- Clusterstatus:[{running_nodes,['emqttd@s1.emqtt.io','emqttd@s2.emqqt.io']}]
或者emqttd@s1.emqtt.io上执行:
- #bin/emqttd_ctlclusterjoinemqttd@s2.emqtt.io
- Jointheclustersuccessfully.
- Clusterstatus:[{running_nodes,'emqttd@s2.emqtt.io']}]
任意节点上查询集群状态:
- #bin/emqttd_ctlclusterstatus
- Clusterstatus:[{running_nodes,252);">
节点退出集群
节点退出集群,两种方式:
leave: 本节点退出集群
remove: 从集群删除其他节点
emqttd@s2.emqtt.io主动退出集群:
#bin/emqttd_ctlclusterleave
Leavetheclustersuccessfully.
Clusterstatus:[{running_nodes,['emqttd@s2.emqqt.io']}]
或emqttd@s1.emqtt.io节点上,从集群删除emqttd@s2.emqtt.io节点:
#bin/emqttd_ctlclusterremoveemqttd@s2.emqtt.io
防火墙设置
如果集群节点间存在防火墙,防火墙需要开启4369端口和一个TCP端口段。4369由epmd端口映射服务使用,TCP端口段用于节点间建立连接与通信。
防火墙设置后,EMQ 需要配置相同的端口段,emqttd/etc/emq.conf文件:
##Distributednodeportrange
node.dist_listen_min=6000
node.dist_listen_max=6999
注意事项: NetSplit
EMQ消息服务器集群需要稳定网络连接以避免发生NetSplit故障。集群设计上默认不自动处理NetSplit,如集群节点间发生NetSplit,需手工重启某个分片上的相关节点。
EMQTTD 集群验证
集群验证我们用Mosquitto进行验证《centos yum 安装Mosquitto》
10消息,20订阅10写入消息
#mosquitto_pub-ttopicTest07-mMessage05-h192.168.0.10-p1883
20订阅查看#mosquitto_sub-v-ttopicTest07-h192.168.0.20-p1883
topicTest07Message05
20消息,10订阅20写入消息
#mosquitto_pub-ttopicTest08-mMessage06-h192.168.0.20-p1883
10订阅查看#mosquitto_sub-v-ttopicTest08-h192.168.0.10-p1883
topicTest08Message06
EMQTTD 状态监测
状态监测可通过自带的WEB进行监测
http://192.168.0.10:8083/status
还有通过控制台:
默认账户与密码:admin/public
控制台信息比较全,自己发现吧