服务启动时发现报如下错误:
org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss
error是在调用zk.exists()时抛出的。
于是开始google,发现问题是原因是:new zookeeper之后,zookeeper的还没有连接好,就去调用,当然会抛错。
继续查找资料,比较优雅的解决方案为如下:
waitUntilConnected(zooKeeper);
public static void waitUntilConnected(ZooKeeper zooKeeper) {
CountDownLatch connectedLatch = new CountDownLatch(1);
Watcher watcher = new ConnectedWatcher(connectedLatch);
zooKeeper.register(watcher);
if (States.CONNECTING == zooKeeper.getState()) {
try {
connectedLatch.await();
} catch (InterruptedException e) {
throw new IllegalStateException(e);
}
}
}
static class ConnectedWatcher implements Watcher {
private CountDownLatch connectedLatch;
ConnectedWatcher(CountDownLatch connectedLatch) {
this.connectedLatch = connectedLatch;
}
@Override
public void process(WatchedEvent event) {
if (event.getState() == KeeperState.SyncConnected) {
connectedLatch.countDown();
}
}
}
分享到:
相关推荐
在分布式协调服务ZooKeeper中,遇到各种报错是常见的现象。这些报错通常是由于对ZooKeeper的操作不符合其规则或是系统配置问题导致的。以下将详细解释标题和描述中提到的常见错误及其解决方法。 1. **NoNode for …...
在使用 Zookeeper API 时,常常会引发以下错误:KeeperErrorCode = ConnectionLoss。这是由于连接还未完成就执行 Zookeeper 的 get/create/exists 操作引起的。 Maven 依赖 如果是 Maven 构建的项目,需要添加以下...
在分布式系统领域,ZooKeeper 是一个至关重要的组件,它是一个分布式的,开放源码的分布式应用程序协调服务。ZooKeeper 提供了诸如命名服务、配置管理、集群同步、组服务等多种功能,使得开发者能够更方便地处理...
CentOS 8 安装 ZooKeeper 3.8.0 详细步骤 ZooKeeper 是一个分布式应用程序协调服务,提供了配置管理、名称服务、分布式同步和提供组服务等功能。下面是 CentOS 8 安装 ZooKeeper 3.8.0 的详细步骤。 1. 下载安装包...
Java连接Zookeeper主要依赖于Apache ZooKeeper项目提供的Java客户端库,这个库包含了处理Zookeeper会话、操作数据节点以及监听事件的关键组件。在给定的压缩包文件中,可能包含了以下核心的jar包: 1. **zookeeper....
《Zookeeper:分布式服务治理的核心组件》 Zookeeper,作为Apache的一个开源项目,是分布式应用程序协调服务的基石,它是一个高可用、高性能的分布式一致性服务。在标题“zookeeper-3.4.6_zookeeper_”中,我们可以...
《Zookeeper实战:ConfigServer代码样例解析》 在分布式系统中,Zookeeper作为一个高可用的分布式协调服务,被广泛应用于配置管理、命名服务、分布式锁等场景。本篇文章将聚焦于Zookeeper的一个典型应用——Config...
zookeeper Linux 集群搭建流程 ZooKeeper 是一个广泛使用的分布式协调服务,主要用于管理和协调分布式系统中的各个节点。Linux 集群搭建是 ZooKeeper 的一种常见应用场景,本文将详细介绍 ZooKeeper Linux 集群搭建...
《Zookeeper 3.4.10:Linux版本详解》 Apache ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终将简单易用...
### Zookeeper 集群升级方案详解 #### 一、需求背景 随着业务的发展和技术的进步,现有的Zookeeper集群系统版本过低(当前版本为3.3.4),导致某些功能特性无法得到支持或表现不佳,这直接影响到了业务的正常运行...
Zookeeper是Apache Hadoop项目下的一个分布式协调服务,它为分布式应用提供了一种高效且可靠的分布式协调机制。在Linux环境下安装Zookeeper是许多大数据和云计算平台的基础步骤,下面将详细介绍Zookeeper在Linux上的...
**Zookeeper可视化工具详解** Apache ZooKeeper 是一个分布式协调服务,它为分布式应用程序提供高度可靠的命名服务、配置管理、集群同步、领导选举等核心功能。在运维和开发过程中,为了更方便地管理和监控...
ZooKeeper 增加权限登录验证 ZooKeeper 是一个广泛使用的分布式协调服务,它提供了许多有用的功能,如配置管理、名字服务、分布式锁等。然而,在 ZooKeeper 中存在一些安全漏洞,例如未经授权的访问、数据泄露等。...
**Zookeeper 概述** Zookeeper 是一个分布式协调服务,由 Apache 开发并维护,它为分布式应用程序提供了高效且可靠的命名服务、配置管理、集群同步、分布式锁等核心功能。Zookeeper 的设计目标是简化分布式环境下的...
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终将简单易用的接口和性能高效、功能稳定的系统提供给用户。...
Zookeeper 是一个分布式的,开放源码的分布式应用程序协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终将简单易用的接口和性能高效、功能稳定的系统提供给用户。...
### ZooKeeper源码阅读知识点详解 #### 一、ZooKeeper客户端初始化与使用 ##### 客户端初始化 ZooKeeper客户端的初始化是通过构造函数完成的,具体为: ```java ZooKeeper zookeeper = new ZooKeeper(host, time...
#Zookeeper的日志可以用LogFormatter查看 ##命令方式如下 java -classpath .:slf4j-api-1.7.2.jar:zookeeper-3.4.6.jar org.apache.zookeeper.server.LogFormatter /var/lib/zookeeper/version-2/log.1 ##window...
《Zookeeper Watcher:深入理解与简单实例》 Apache ZooKeeper 是一个分布式协调服务,它为分布式应用程序提供了简化的命名服务、配置管理、集群管理和分布式同步等基础功能。在Zookeeper中,Watcher 是一个非常...