apache / apache/dubbo-admin

DubboAdmin支持Dubbo3+Nacos做如下变更是否合适

Open
#952 1 comment 1 reaction 0 assignees View on GitHub
Dominant language
Go
Stars
4.1k
Forks
2.2k
Avg merge
10d 12h
Merged PRs (30d)
4

Description

### Environment

* Dubbo Admin version: 0.5.0
* Java version: 1.8
* Nacos: 2.1.0

### Steps to reproduce this issue

1. 集成Dubbo3.x应用发现问题

NacosServiceMapping的初始化逻辑注入Url为metadataUrl,参考代码ConfigServer.getServiceMapping(ServiceDiscovery serviceDiscovery, InstanceRegistryCache instanceRegistryCache)
而目前按照Dubbo的处理逻辑,metadataUrl的group默认值为dubbo、registryUrl的group默认值为DEFAULT_GROUP,即存在metadataUrl与registryUrl不一致的情况,此时NacosServiceMapping使用metadataUrl初始化则导致getAllServiceNames()结果为空,现象为管理界面服务列表为空,此处应该修改为使用registryUrl进行初始化,才能使服务列表正常获取和显示,参考如下
```
@Bean
@DependsOn("dubboRegistry")
ServiceMapping getServiceMapping(ServiceDiscovery serviceDiscovery, InstanceRegistryCache instanceRegistryCache) {
ServiceMapping serviceMapping = new NoOpServiceMapping();
if (registryUrl == null) {
return serviceMapping;
}
MappingListener mappingListener = new AdminMappingListener(serviceDiscovery, instanceRegistryCache);
serviceMapping = ExtensionLoader.getExtensionLoader(ServiceMapping.class).getExtension(registryUrl.getProtocol());
serviceMapping.addMappingListener(mappingListener);
serviceMapping.init(registryUrl);
return serviceMapping;
}
```

Contributor guide

Open the contributing guide

Research direction

Start at ConfigServer.getServiceMapping(ServiceDiscovery serviceDiscovery, InstanceRegistryCache instanceRegistryCache) and inspect how NacosServiceMapping is initialized. Compare the metadataUrl and registryUrl group values, then verify that initializing with registryUrl allows the Dubbo 3 and Nacos service list to load and display correctly.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
backend
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.