阿里ECS服务器安装 zookeeper 集群:Cannot open channel to 1 at election address 问题解决。

在阿里的ECS服务器上装ZK集群,各项配置弄好之后,zkServer.sh start 启动zk集群,jps查看zk进程,一切正常
阿里ECS服务器安装 zookeeper 集群:Cannot open channel to 1 at election address 问题解决。_第1张图片

然后执行zk状态查询命令: zkServer.sh status,却得到:
在这里插入图片描述

查看zk的日志,如果你没有配置zk的日志定向输出的话,日志一般在你执行启动命令的目录。
vim zookeeper.out 打开日志文件,报出这样的错:
在这里插入图片描述
在网上查了一圈,都说是防火墙和端口的问题,可是我的阿里的ECS服务器安全配置组的zk的几个端口都是打开的,百思不得其解,终于在多次尝试之后发现了问题。

打开zk的配置文件zoo.conf,一般网上的说的配置为

server.1=ip1:port1:port:2
server.2=ip2:port1:port:2
server.3=ip3:port1:port:2
...

但是在阿里的云服务器上,通过自己的公网ip,是不能监听自己本机的端口的。比如上面三台服务器中,本机的配置项为第一条:

server.1=ip1:port1:port2

如果公网ip为:10.10.203.22 ,那么就为:

server.1=10.10.203.22:2888:3888

如果以这种方式来配置本机的信息,是无法监听到本机2888和3888这两个端口的,所以导致别的机子上的zk启动之后无法与本机通讯,本机也无法与集群中其他的机子进行通讯,所以报出了这个连接失败的错误。

解决问题,修改本机的配置信息
将本机的ip改为0.0.0.0,通过这个ip来监听本机的这两个端口。

server.1=0.0.0.0:2888:3888

如果本机端口监听在0.0.0.0上,那么其他服务器通过本机的公网ip则可以连接到本机的该端口,但是如果通过本机的公网ip监听,那么是无法打开想要被监听的端口的。

学习,是一个永不停止的过程。

你可能感兴趣的:(ZK,zookeeper,linux)