栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

zookeeper KeeperErrorCode = ConnectionLoss for / 相关问题

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

zookeeper KeeperErrorCode = ConnectionLoss for / 相关问题

这里假设ip jar对应的版本 都匹配得上zookeeper服务器,防火墙也开了的情况下
然后,在运行中我执行下代码,发现有下述bug

这个可能是在未连接到zookeeper的情况下来执行的

第一种方法

于是加个判断

while(true){
	if (ZooKeeper.States.ConNECTING == zkClient.getState()) {
	    Thread.sleep(1000);
	}else {
	    break;
	}
}

等建立连接后再执行对zookeeper服务器的各种操作,解决~

第二种方法

可以设置下zoo.cfg 配置文件,里面有个时间可以设置下

# 通信心跳时间,Zookeeper服务器与客户端心跳时间,单位毫秒
tickTime=2000
# 初始通信时限 Leader和Follower初始连接时能容忍的最多心跳数(tickTime的数量)
initLimit=10
# LF同步通信时限 Leader和Follower之间通信时间如果超过syncLimit * tickTime,Leader认为Follwer死掉,从服务器列表中删除Follwer
syncLimit=5

同样,也可以在java连接代码中增大sessionTimeout

ZooKeeper zk = new ZooKeeper(connectString, sessionTimeout, new Watcher() {
            @Override
            public void process(WatchedEvent watchedEvent) {

            }
        });

在Curator框架也一样

Curatorframework client = CuratorframeworkFactory.builder()
                .connectString("114.132.233.176:2181,114.132.233.176:2182,114.132.233.176:2183")
                .connectionTimeoutMs(21000)
                .sessionTimeoutMs(21000)
                .retryPolicy(policy).build();
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/356014.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号