天天看点

EMQ集群安装依赖安装包启动开启防火墙访问权限重启EMQ服务节点加入集群查看集群的状态节点退出集群

Erlang/OTP 语言平台的分布式程序,由分布互联的 Erlang 运行系统组成,每个 Erlang 运行系统被称为节点(Node),节点(Node) 间通过 TCP 互联,消息传递的方式通信:

Node1 -------- Node2
\ /
\ /
/ \
/ \

EMQ 节点集群使用的 TCP 端口:

4369 集群节点发现端口 6369 集群节点控制通道

防火墙根据使用的 MQTT 接入方式,开启上述端口的访问权限。

集群节点间如有防护墙,需开启上述 TCP 端口互访权限。

如果集群节点间存在防火墙,防火墙需要开启 4369 端口和一个 TCP 端口段。4369 由 epmd 端口映射服务使用,TCP 端口段用于节点间建立连接与通信。

防火墙设置后,EMQ 需要配置相同的端口段,emqttd/etc/emq.conf 文件:

Distributed node port range

node.dist_listen_min = 6369

node.dist_listen_max = 7369

EMQ集群:

rpm安装:

安装依赖

yum -y install yum install lksctp-tools

安装包

yum -y install emqttd-centos7-v2.3.11-1.el7.centos.x86_64.rpm

启动

systemctl start emqttd.service

配置集群目录:vim /data/emq/emqx/etc/emqx.conf

cluster.discovery = manual

#日志相关配置

Crash dump log file. 故障转储日志文件

node.crash_dump = /data/emq/emq-cluster/logs/crash.dump

Sets the log dir. 主日志路径

log.dir = /data/emq/emq-cluster/logs/

The file where error logs will be writed to. 错误日志

log.error.file = /data/emq/emq-cluster/logs/error.log

The file for crash log. 故障日志的文件

log.crash.file = /data/emq/emq-cluster/logs/crash.log

启动emq:./bin/emqx start

emqx 3.0.1 is started successfully!

配置集群:vim /etc/emqttd/emq.conf

cluster.name = emqcl

cluster.discovery = manual

node.name = [email protected]

node.proto_dist = inet_tcp

node.dist_listen_min = 6369

node.dist_listen_max = 7369

listener.tcp.internal = 0.0.0.0:11883 内部mqtt/tcp协议侦听器的IP地址和端口

开启防火墙访问权限

firewall-cmd --zone=public --add-port={1883/tcp,8080/tcp,18083/tcp,4369/tcp,8883/tcp.8083/tcp,8084/tcp,6370/tcp} --permanent

firewall-cmd --reload

重启EMQ服务

systemctl start emqttd.service

[[email protected] ~]# netstat -tnlp

EMQ集群安装依赖安装包启动开启防火墙访问权限重启EMQ服务节点加入集群查看集群的状态节点退出集群

集群操作命令:

节点加入集群

emqttd_ctl cluster join [email protected]

查看集群的状态

emqttd_ctl cluster help

[[email protected] ~]# emqttd_ctl cluster status

Cluster status: [{running_nodes,['[email protected]',br/>'[email protected]',

'[email protected]']}]

节点退出集群

主动退出:emqttd_ctl cluster leave

Leave the cluster successfully.

Cluster status: [{running_nodes,['[email protected]']}]

从集群中删除: emqttd_ctl cluster force-leave [email protected]

Remove the node from cluster successfully.

Cluster status: [{running_nodes,['[email protected]',

'[email protected]']}]

转载于:https://blog.51cto.com/13576471/2359149

继续阅读