dubbo-admin注册中心配置相关说明以及nacos相关问题修复

 ̄綄美尐妖づ 提交于 2020-07-28 17:20:50

dubbo-admin是dubbo的一版开发的控制平台,支持的注册中心,包括zookeeper,nacos,consul等,下面就介绍相关的支持的注册中心的各项配置和注意事项.

dubbo-admin的github官方地址:https://github.com/apache/dubbo-admin

zookeeper相关配置:

配置文件路径:  application.properties

admin.registry.address=zookeeper://127.0.0.1:2181
admin.config-center=zookeeper://127.0.0.1:2181
admin.metadata-report.address=zookeeper://127.0.0.1:2181

nacos (git 官方地址:https://github.com/alibaba/nacos, 中文使用文档:https://nacos.io/zh-cn/ )相关配置:

admin.registry.address=nacos://127.0.0.1:8848
admin.config-center=nacos://127.0.0.1:8848
admin.metadata-report.address=nacos://127.0.0.1:8848

nacos 注册中心 有 GROUP(组) 和 namespace(命名空间) 概念,具体概念可以参照:https://nacos.io/zh-cn/docs/concepts.html

#group
admin.registry.group=dubbo
admin.config-center.group=dubbo
admin.metadata-report.group=dubbo

#namespace used by nacos
admin.registry.namespace=public
admin.config-center.namespace=public
admin.metadata-report.namespace=public

上述的场合,由于现在的节点,admin 不支持 namespace的功能,修复dubbo-admin => 服务查询,查询不到服务的问题.

源码做了如下的修改:

org.apache.dubbo.admin.config.ConfigCenter

package org.apache.dubbo.admin.config;


@Configuration
public class ConfigCenter {

     #namespace 支持======start
    @Value("${admin.registry.namespace:dubbo}")
    private String registryNameSpace;

    @Value("${admin.config-center.namespace:dubbo}")
    private String configCenterGroupNameSpace;

    @Value("${admin.metadata-report.namespace:dubbo}")
    private String metadataGroupNameSpace;
    ##namespace 支持======end


    private URL formUrl(String config, String group, String nameSpace, String username, String password) {
        URL url = URL.valueOf(config);
        if (StringUtils.isNotEmpty(group)) {
            url = url.addParameter(Constants.GROUP_KEY, group);
        }
        #namespace 支持======start
        if (StringUtils.isNotEmpty(nameSpace)){
            url = url.addParameter(Constants.NAMESPACE_KEY, nameSpace);
        }
        #namespace 支持======end
        if (StringUtils.isNotEmpty(username)) {
            url = url.setUsername(username);
        }
        if (StringUtils.isNotEmpty(password)) {
            url = url.setPassword(password);
        }
        return url;
    }
}
org.apache.dubbo.admin.registry.config.impl.NacosConfiguration
public class NacosConfiguration implements GovernanceConfiguration {
    private static final Logger logger = LoggerFactory.getLogger(NacosConfiguration.class);

    private ConfigService configService;
    #namespace 支持======start
    private String nameSpace;
    #namespace 支持======end
    private String group;
    private URL url;

    @Override
    public void init() {
        group = url.getParameter(Constants.GROUP_KEY, "DEFAULT_GROUP");
        #namespace 支持======start
        nameSpace = url.getParameter(Constants.NAMESPACE_KEY, "public");
        #namespace 支持======end
        configService = buildConfigService(url);
    }



    private void setServerAddr(URL url, Properties properties) {

        String serverAddr = url.getHost() + // Host
                ":" +
                url.getPort() // Port
                ;
        
        properties.put(SERVER_ADDR, serverAddr);
        #namespace 支持======start
        properties.put(NAMESPACE, nameSpace);
        #namespace 支持======end
    }

具体代码改动地址:
https://github.com/jiang2015/dubbo-admin develop分支

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!