SpringBoot 整合 Zookeeper 常见错误总结
SpringBoot 整合 Zookeeper 过程中常遇到依赖缺失、版本不匹配、连接配置错误、服务启动失败及运行时注册异常等问题。本文总结了各类报错现象的原因分析,并提供对应的依赖配置、参数设置及服务检查方案,同时给出版本匹配与排查的最佳实践建议。

SpringBoot 整合 Zookeeper 过程中常遇到依赖缺失、版本不匹配、连接配置错误、服务启动失败及运行时注册异常等问题。本文总结了各类报错现象的原因分析,并提供对应的依赖配置、参数设置及服务检查方案,同时给出版本匹配与排查的最佳实践建议。

报错内容:
java.lang.NoClassDefFoundError: org/apache/curator/RetryPolicy
java.lang.NoClassDefFoundError: org/apache/zookeeper/Watcher
java.lang.NoClassDefFoundError: org/apache/curator/utils/DefaultZookeeperFactory
java.lang.NoClassDefFoundError: org/apache/curator/framework/CuratorFrameworkFactory
原因:
解决方案:
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>4.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<version>4.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.6.1</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
报错内容:
@DubboReference dependencies is failed
原因:
@EnableDubbo 注解解决方案:
@SpringBootApplication
@EnableDubbo
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
报错内容:
Caused by: java.lang.IllegalStateException: failed to connect to zookeeper server
原因:
spring.cloud.zookeeper.connect-string 配置错误解决方案:
spring:
cloud:
zookeeper:
connect-string: 192.168.1.100:2181
报错内容:
Invalid arguments, exiting abnormally java.lang.NumberFormatException: For input string: "D:\MyDevPrograms\Zookeeper\apache-zookeeper-3.8.4-bin\bin\..\conf\zoo.cfg"
原因:
解决方案:
mkdir -p /data/zookeeper
chmod +w /data/zookeeper
报错内容:
Error contacting service. It is probably not running.
原因:
解决方案:
netstat -tuln | grep :2181
clientPort=2182
报错内容:
Connection refused: no further information
原因:
解决方案:
bin/zkServer.sh start
报错内容:
Caused by: java.lang.IllegalStateException: failed to connect to zookeeper server
原因:
解决方案:
spring:
cloud:
zookeeper:
connect-string: 192.168.1.100:2181
connection-timeout: 10000
报错内容:
Error: Cannot create data directory /data/zookeeper
原因:
解决方案:
chmod -R 755 /data/zookeeper
报错内容:
Error contacting service. It is probably not running.
原因:
解决方案:
报错内容:
Caused by: org.apache.dubbo.registry.zookeeper.util.CuratorFrameworkUtils.buildCuratorFramework
原因:
解决方案:
dubbo:
registry:
address: zookeeper://192.168.1.100:2181
timeout: 60000
报错内容:
Error contacting service. It is probably not running.
原因:
解决方案:
报错内容:
org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /path
原因:
解决方案:
报错内容:
Starting Zookeeper ...............FAILED TO START
原因:
解决方案:
报错内容:
ZooKeeper server is not running on port 2181
原因:
解决方案: 修改 zoo.cfg 文件中的 clientPort:
clientPort=2181
| 问题类型 | 报错内容 | 解决方案 |
|---|---|---|
| 依赖缺失 | NoClassDefFoundError | 添加正确的 Zookeeper 和 Curator 依赖 |
| 配置错误 | failed to connect to zookeeper server | 检查连接地址和配置文件 |
| 端口冲突 | Error contacting service. It is probably not running | 检查端口占用,修改 clientPort |
| 服务注册失败 | Connection refused | 确认 Zookeeper 服务已启动 |
| 连接超时 | failed to connect to zookeeper server | 增加连接超时时间 |
| 数据目录权限 | Cannot create data directory | 创建目录并设置权限 |
| Dubbo 整合问题 | @DubboReference dependencies is failed | 添加@EnableDubbo 注解和正确依赖 |
| 循环依赖 | Error contacting service. It is probably not running | 调整服务依赖关系 |
依赖管理:
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>4.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<version>4.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.6.1</version>
</dependency>
配置检查:
spring:
cloud:
zookeeper:
connect-string: 192.168.1.100:2181
connection-timeout: 10000

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online
JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online
使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online
Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online