dubbo-admin icon indicating copy to clipboard operation
dubbo-admin copied to clipboard

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

Open liudaac opened this issue 3 years ago • 1 comments

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;
    }

liudaac avatar Dec 23 '22 10:12 liudaac

#1148

wuwen5 avatar Jun 01 '23 06:06 wuwen5