由于在Dubbo2.7中,配置中心和注册中心做了分离,并且增加了元数据中心,因此Dubbo Admin的配置方式也做了更新,好不容易部署好了dubbo-admin最新版,一共的也是dubbo2.7.3为什么不显示元数据呢?
在这里插入图片描述
官方说明是:

*配置规范
由于在Dubbo2.7中,配置中心和注册中心做了分离,并且增加了元数据中心,因此Dubbo Admin的配置方式也做了更新,application.properties中的配置如下:
 admin.registry.address=zookeeper://127.0.0.1:2181
 admin.config-center=zookeeper://127.0.0.1:2181 
 admin.metadata.address=zookeeper://127.0.0.1:2181
也可以和Dubbo2.7一样,在配置中心指定元数据和注册中心的地址,以zookeeper为例,配置的路径和内容如下:
 /dubbo/config/dubbo/dubbo.properties 
 dubbo.registry.address=zookeeper://127.0.0.1:2181 
 dubbo.metadata-report.address=zookeeper://127.0.0.1:2181
配置中心里的地址会覆盖掉本地application.properties的配置*

但是看不懂啥意思,这里有人提了相同的问题https://github.com/apache/dubbo-admin/issues/342
原来是要在zookeeper里面增加这个节点: /dubbo/config/dubbo/dubbo.properties ,并且设置值。
知道了这个就好办了,我写了个main方法手动增加一下:

import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.retry.ExponentialBackoffRetry;

public class Test {
	public static void main(String[] args) {
		try {
			CuratorFramework zkClient = CuratorFrameworkFactory.builder().
	                connectString("192.168.232.130: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://192.168.232.130:2181\n" +
	                "dubbo.metadata-report.address=zookeeper://192.168.232.130:2181").getBytes());

		}catch (Exception e) {
			e.printStackTrace();
		}
	}
}

重启项目,就可以了.
其实我想直接在dubbo-admin的后台管理里创建估计也可以。
在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐