springboot 2.6.3
zookeeper 3.7.1
dubbo 2.7.2
这是报错场景
点进去可以看到如下 这里
解决方式官方说了:
第一步,在 dubbo-admin-server 的配置文件中仅保留
admin.config-center=zookeeper://127.0.0.1:2181
第二步,在 /dubbo/config/dubbo/dubbo.properties 中写入如下配置
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.metadata-report.address=zookeeper://127.0.0.1:2181
这里有几种配置方式
1、下载 zookeeper 可视化工具。我这里用的 ZooInspector
下载好后解压有个 build 和 src ,在 build 中有个 jar 包(zookeeper-dev-ZooInspector.jar),运行jar包
修改这玩意 /dubbo/config/dubbo/dubbo.properties
2、在 dubbo-admin-server 的 org.apache.dubbo.admin.config.ConfigCenter 中添加如下代码,启动 dubbo-admin-server 时可以自动将配置写入 /dubbo/config/dubbo/dubbo.properties
@PostConstruct
public void init() throws Exception {
CuratorFramework zkClient = CuratorFrameworkFactory.builder().
connectString("127.0.0.1:2181").
retryPolicy(new ExponentialBackoffRetry(1000, 3)).build();
zkClient.start();
if (zkClient.checkExists().forPath("/dubbo/config/dubbo/dubbo.properties") == null) {
zkClient.create().creatingParentsIfNeeded().forPath("/dubbo/config/dubbo/dubbo.properties");
}
zkClient.setData().forPath("/dubbo/config/dubbo/dubbo.properties", ("dubbo.registry.address=zookeeper://127.0.0.1:2181\n" +
"dubbo.metadata-report.address=zookeeper://127.0.0.1:2181").getBytes());
}
3、如图所示
这三种方式的效果都一样,目的就是将配置写入 /dubbo/config/dubbo/dubbo.properties
改好后重启服务
如果还不行,可以检查下依赖
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>2.12.0</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<version>2.12.0</version>
</dependency>
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>0.2.0</version>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.7.1</version>
</dependency>
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.10</version>
</dependency>
版本很重要!!