阿里云ECS部署ZooKeeper注意事项

如果ECS为专有网络+弹性IP时,配置集群中,"自己"的ip要写成0.0.0.0,其他服务器可以写成公网ip。否则会包如下错误:

java.net.BindException: Cannot assign requested address

例如有服务器10.1.1.1和10.1.1.2两台服务器,则

在10.1.1.1中配置如下:

server.1=0.0.0.0:2888:3888

server.2=10.1.1.2:2888:3888

在10.1.1.1中配置如下:

server.1=10.1.1.1:2888:3888

server.2=0.0.0.0:2888:3888

 公网地址也可以换成域名。

 无论conf.cfg中是配置的域名还是ip,在客户端上最好直接使用ip,具体原因不明,但使用域名时会报:org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /

zooKeeper = new ZooKeeper("10.1.1.1:2181,10.1.1.1:2181", 2000, new Watcher() {
            @Override
            public void process(WatchedEvent event) {
            }
        });

参考:

https://bbs.aliyun.com/read/537993.html

原文地址:https://www.cnblogs.com/at0x7c00/p/7979805.html