因为项目中需要使用分布式配置管理,所以使用了ZooKeeper,ZooKeeper的客户端使用的是zookeeper-3.4.5.jar原来使用的2.3.3版本,后来升级到了2.4.5升级版本,在本地调试总是正确的,但是放置到weblogic下就不行了,发现在weblogic10下竟然无法使用一直报错:
01/08 10:41:21 [WARN] ClientCnxn: Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect
java.lang.IllegalArgumentException: No Configuration was registered that can handle the configuration named Client
at com.bea.common.security.jdkutils.JAASConfiguration.getAppConfigurationEntry(JAASConfiguration.java:130)
at org.apache.zookeeper.client.ZooKeeperSaslClient.<init>(ZooKeeperSaslClient.java:97)
at org.apache.zookeeper.ClientCnxn$SendThread.startConnect(ClientCnxn.java:943)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:993)
觉得很奇怪,最后找到了源代码,发现原来是因为ZooKeeper客户端 默认使用JAAS方式认证,即使你不配置认证,客户端也会去首先尝试使用认证方式连接,抛错拦截后再使用非认证的方式去连接。
但是ZooKeeper 认证这段代码抛出的异常类型是SecurityException,而weblogic下的JAAS的认证抛出的却是RuntimeException ,所以捕获不到,所以会一直报错,无法连接。
解决办法:1 修改ZooKeeperSaslClient 类的代码,将抛出的异常类型改为RuntimeException 。
2 升级到2.4.6 或者回退到较早的版本。
关于该问题已经有人上报了问题,相信在新版本,apache应该会尽快解决。
相关推荐
1. **文件读写延迟**:在某些情况下,用户可能会遇到文件读取或写入的延迟,这通常是由于ZkFuse在处理数据变更通知时的同步机制问题。当Zookeeper节点发生变化时,ZkFuse可能无法及时更新文件系统的状态,导致数据不...
在Zookeeper-3.4.6版本中,可能包含了一些性能优化、bug修复和新的特性的引入。例如,可能会改进了客户端API的易用性,增强了系统的稳定性和容错性,或者增加了对更大规模集群的支持。不过,具体改动需要查看官方...
通常,可以在Zookeeper的bin目录下找到启动脚本,例如`zkServer.sh start`。 6. **验证集群状态** 使用`zkServer.sh status`命令检查Zookeeper服务的状态,确认集群正常运行。 通过以上步骤,可以在Linux环境下...
这个压缩包包含了在Linux环境中运行的Zookeeper以及Windows平台下用于查看和管理Zookeeper状态的工具。 在Linux环境下安装Zookeeper首先需要下载对应的压缩包。这个压缩包可能包含`zookeeper-x.x.x-bin.tar.gz`文件...
zookeeper在centosx下的详细安装,一共部署三台机器,每台机器启动一个zookeeper进程
Apache ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终将简单易用的接口和性能高效、功能稳定的系统提供给...
在选举模式下,ZooKeeper 节点之间不能相互通信,需要选举出一个 leader 节点来恢复集群。 ZooKeeper 应用场景 ZooKeeper 广泛应用于分布式系统中,例如分布式配置管理、分布式锁、分布式队列等。ZooKeeper 的高...
在实际生产环境中,Zookeeper 通常运行在真正的集群模式下,这意味着每个服务器节点都参与集群工作,共同维护整个系统的状态。集群模式提供了更高的可用性和容错性,当某台服务器出现故障时,其他服务器能够接管其...
在某些情况下,比如使用Dubbo框架与ZooKeeper结合时,可能会遇到认证问题,这时需要确保认证机制正确实现,以避免认证失败导致的访问控制问题。 如果上述认证方式都无法满足需求,最后可以采用IP限制方式,即通过IP...
2.然后,在 ZooKeeper 的 bin 目录下执行以下命令,创建一个名为 `extends` 的节点:`./zkCli.sh -server <ip> create /zookeeper/extends 1` 3.接着,创建一个名为 `skip_limited_ip` 的节点:`./zkCli.sh -server ...
在本场景中,我们关注的是ZooKeeper在Linux环境下的使用。 标题“Zookeeper Linux版本”指的是适用于Linux操作系统的ZooKeeper软件包。ZooKeeper通常在分布式系统中用于命名服务、配置管理、集群同步、分布式锁等...
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终将简单易用的接口和性能高效、功能稳定的系统提供给用户。...
在默认情况下,Zookeeper允许任何IP地址进行连接。为了提高系统的安全性,我们需要实现对客户端IP的过滤,允许指定的IP(白名单)或者禁止特定IP(黑名单)访问。这可以通过在Zookeeper服务器端增加配置,对连接...
Zookeeper是Apache软件基金会的一个开源...无论是数据一致性、服务发现还是分布式锁,都能在Zookeeper的帮助下轻松实现。对于Java开发者而言,理解并掌握Zookeeper的使用和原理,对于构建可靠的分布式系统至关重要。
在运维和开发过程中,为了更方便地管理和监控Zookeeper,出现了许多可视化工具。这些工具通过图形用户界面(GUI)提供对Zookeeper状态的直观展示,帮助用户查看节点信息、操作数据、监控集群状态以及进行故障排查。 ...
标签中的"zookeeper"和"linux"进一步强调了这个软件包与Zookeeper项目以及Linux平台的关系,表明这是一款在Linux环境下运行的Zookeeper实现。 压缩包子文件"apache-zookeeper-3.9.1-bin"通常包含以下组件: 1. **...
在 `/tmp/zookeeper/data` 目录下创建 `myid` 文件,并编辑该文件,输入对应的编号。 7.3. 修改 B 服务器 7.3.1. 修改 `zoo.cfg` 文件 7.3.2. 修改 `myid` 文件 7.4. 修改 C 服务器 7.4.1. 修改 `zoo.cfg` 文件 ...
Dubbo是一个高性能、轻量级的Java服务治理框架,而Zookeeper则是一个分布式的、开放源码的分布式应用程序协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。...
在Kafka中,这体现在分区的领导者选举、元数据更新等方面,保证了即使在部分节点失效的情况下,系统仍能正常运行。 5. **客户端的连接管理**:Kafka的生产者和消费者在初始化时,会向Zookeeper注册一个临时节点,...