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
ublic 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分支