emqx 手动搭建emqx集群

手动(manual) 方式管理集群介绍(看完收藏·点赞)

两台服务器 s1.emqx.io, s2.emqx.io 上部署 EMQ X 集群:

节点名	                                主机名 (FQDN)	          IP 地址
emqx@s1.emqx.io 或 emqx@192.168.78.131	s1.emqx.io	           192.168.78.131
emqx@s2.emqx.io 或 emqx@192.168.0.130	s2.emqx.io       	   192.168.78.130

配置 emqx@s1.emqx.io 节点

emqx/etc/emqx.conf:

node.name = emqx@s1.emqx.io
# 或
node.name = emqx@192.168.78.131

注意: 节点启动加入集群后,节点名称不能变更。

配置 emqx@s2.emqx.io 节点

emqx/etc/emqx.conf:

node.name = emqx@s2.emqx.io
# 或
node.name = emqx@192.168.78.130

注意: 节点启动加入集群后,节点名称不能变更。

节点加入集群

启动两台节点后,在 s2.emqx.io 上执行:

$ ./bin/emqx_ctl cluster join emqx@192.168.78.131

执行命令后,加入集群failed

Failed to join the cluster: {node_down,'192.168.78.131@192.168.78.130'}

加入失败原因是没有开放4370端口

开放4370端口:(所有节点开发4370端口)

firewall-cmd --zone=public --add-port=4370/tcp --permanent

重新启动防火墙:

firewall-cmd --reload

然后重新执行:

$ ./bin/emqx_ctl cluster join emqx@192.168.78.131
Join the cluster successfully.
Cluster status: #{running_nodes =>
                      ['emqx@192.168.78.130','emqx@192.168.78.131'],

或者在 s1.emqx.io 上执行:

$ ./bin/emqx_ctl cluster join emqx@192.168.78.130
Join the cluster successfully.
Cluster status: #{running_nodes =>
                      ['emqx@192.168.78.130','emqx@192.168.78.130'],

在任意节点上查询集群状态:

./bin/emqx_ctl cluster status
{running_nodes =>
                      ['emqx@192.168.78.130','emqx@192.168.78.131'],
                  stopped_nodes => []}

测试两个节点之间是否能正常通信

ws://192.168.78.130:8083/mqtt
ws://192.168.78.131:8083/mqtt
mqtt://192.168.78.130:1883
同时订阅一个主题例如all 然后选择一端发送消息,检查另一端是否能接收到消息

测试结果两个节点(s1.emqx.io和s2.emqx.io)之间无法互相通信

解决导致无法消息互通问题:
1. 在各节点emqx/etc/emqx.conf:

将 rpc.port_discovery = stateless改为
rpc.port_discovery = manual(手动命令创建集群)

2.开放5369端口,重启防火墙
firewall-cmd --zone=public --add-port=5369/tcp --permanent
firewall-cmd --reload
然后再重新启动emqx,再重新进行消息互通测试,消息能够成功互通,最终手动搭建emqx集群完成。

emqx restart

接下来可通过nginx配置负载均衡策略,进而合理分配连接
详细配置:nginx负载均衡配置分配连接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值