<!-- 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.

## Ask your question here
操作步骤如下：
1. k8s环境下，consumer端开启mesh模式
2. consumer端需要调用多个provider
3. provider有应用级注册和接口级注册，并且需要的provider不再同一个namespace下
4. 原有项目存在dubbo2.6与3.1多版本间的相互调用，在开启消费端mesh（dubbo3.1）后，无法调用到2.6的服务提供者

**问题：**

1. 如何实现在一个consumer下，调用多个namespace下的provider，并且provider有应用级注册和接口级注册
2. dubbo3.1消费端在开启mesh后，如何调用版本是2.6的服务提供者
* @param referenceParameters referenceParameters
     * @return mesh config is correct
     */
    private boolean checkMeshConfig(Map<String, String> referenceParameters) {
        if (!"true".equals(referenceParameters.getOrDefault(MESH_ENABLE, "false"))) {
            // 
            referenceParameters.put(UNLOAD_CLUSTER_RELATED, "false");
            return false;
        }
        getScopeModel().getConfigManager().getProtocol(TRIPLE)
                .orElseThrow(() -> new IllegalStateException("In mesh mode, a triple protocol must be specified"));
        String providedBy = referenceParameters.get(PROVIDED_BY);
        if (StringUtils.isEmpty(providedBy)) {
            throw new IllegalStateException("In mesh mode, the providedBy of ReferenceConfig is must be set");
        }
        return true;
    }
    /**
     * Make a local reference, create a local invoker.
     *
     * @param referenceParameters
     */
    @SuppressWarnings({"unchecked", "rawtypes"})
    private void createInvokerForLocal(Map<String, String> referenceParameters) {
        URL url = new ServiceConfigURL(LOCAL_PROTOCOL, LOCALHOST_VALUE, 0, interfaceClass.getName(), referenceParameters);
        url = url.setScopeModel(getScopeModel());
        url = url.setServiceModel(consumerModel);
        invoker = protocolSPI.refer(interfaceClass, url);
        if (logger.isInfoEnabled()) {
            logger.info("Using in jvm service " + interfaceClass.getName());