DubboAdmin支持Dubbo3+Nacos做如下变更是否合适
- 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
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