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 = emq2@192.168.170.131
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
[root@gougou ~]# netstat -tnlp
EMQ集群

集群操作命令:

节点加入集群

emqttd_ctl cluster join emq1@192.168.170.130

查看集群的状态

emqttd_ctl cluster help
[root@gougou ~]# emqttd_ctl cluster status
Cluster status: [{running_nodes,['emq1@192.168.170.130',br/>'emq3@192.168.170.132',
'emq2@192.168.170.131']}]

节点退出集群

主动退出:emqttd_ctl cluster leave
Leave the cluster successfully.
Cluster status: [{running_nodes,['emq2@192.168.170.131']}]
从集群中删除: emqttd_ctl cluster force-leave emq3@192.168.170.132
Remove the node from cluster successfully.
Cluster status: [{running_nodes,['emq2@192.168.170.131',
'emq1@192.168.170.130']}]

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值