<!-- If you need to report a security issue please visit https://github.com/apache/dubbo/security/policy -->

- [x] I have searched the [issues](https://github.com/apache/dubbo/issues) of this repository and believe that this is not a duplicate.

### Environment

* Dubbo version: 3.0.7
* Operating System version: all
* Java version: all

### Steps to reproduce this issue

1. 使用阿里巴巴的包实现了扩展com.alibaba.dubbo.registry.RegistryFactory,并重写了方法
org.alibaba.dubbo.registry.Registry getRegistry(com.alibaba.dubbo.common.URL url)
 
目前系统数量比较多,升级dubbo3.0.7后编译失败,查看了Dubbo3中的com.alibaba.dubbo.registry.RegistryFactory,类型发现
这个类型的getRegistry的返回值变了,返回了apache的org.apache.dubbo.registry.Registry
org.apache.dubbo.registry.Registry getRegistry(com.alibaba.dubbo.common.URL url);

如果这样搞的话,我这个依赖库中的扩展就无法同时支持新老版本的getRegistry方法了使用了高版本的包重写了getRegistry这个方法低版本的包就无法用我的扩展类型

Pls. provide [GitHub address] to reproduce this issue.

### Expected Behavior

<!-- What do you expect from the above steps？-->
麻烦兼容下低版本,其他类型做的都挺好的返回值alibaba的包下面就是alibaba的类型 

### Actual Behavior

<!-- What actually happens? -->

目前alibaba的包中出现 apache的类型 自定义扩展到 同学们的开发的工具包可能是无法兼容dubbo新版本的,导致升级困难

ScopeModel scopeModel = instance.getApplicationModel();
        Protocol protocol = scopeModel.getExtensionLoader(Protocol.class).getAdaptiveExtension();
        Invoker<MetadataService> invoker = protocol.refer(MetadataService.class, urls.get(0));
        ProxyFactory proxyFactory = scopeModel.getExtensionLoader(ProxyFactory.class).getAdaptiveExtension();
        return proxyFactory.getProxy(invoker);
    }
    public static MetadataInfo getRemoteMetadata(String revision, List<ServiceInstance> instances, MetadataReport metadataReport) {
        ServiceInstance instance = selectInstance(instances);
        String metadataType = ServiceInstanceMetadataUtils.getMetadataStorageType(instance);
        MetadataInfo metadataInfo;
        try {
            if (logger.isDebugEnabled()) {
                logger.debug("Instance " + instance.getAddress() + " is using metadata type " + metadataType);
            }
            if (REMOTE_METADATA_STORAGE_TYPE.equals(metadataType)) {
                metadataInfo = MetadataUtils.getMetadata(revision, instance, metadataReport);
            } else {
                
                MetadataService metadataServiceProxy = null;
                try {
                    metadataServiceProxy = MetadataUtils.referProxy(instance);
                    metadataInfo = metadataServiceProxy.getMetadataInfo(ServiceInstanceMetadataUtils.getExportedServicesRevision(instance));
                } finally {
                    if (metadataServiceProxy instanceof Destroyable) {
                        ((Destroyable)metadataServiceProxy).$destroy();
                    }
                }
            }
        } catch (Exception e) {
            logger.error("Failed to get app metadata for revision " + revision + " for type " + metadataType + " from instance " + instance.getAddress(), e);