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

### Environment

* Dubbo version: 2.7.5
* Zookeeper version: 3.4.14
* Operating System version: macos
* Java version: 1.8

### Steps to reproduce this issue

1. 按官方文档搭建provider，两种方式：annotation/xml
2. 分别配置

```xml
    <dubbo:metadata-report address="zookeeper://127.0.0.1:2181"/>
```

```java
        @Bean
        public MetadataReportConfig metadataReportConfig() {
            MetadataReportConfig metadataReportConfig = new MetadataReportConfig();
            metadataReportConfig.setAddress("zookeeper://127.0.0.1:2181");
            return metadataReportConfig;
        }
```

3. 应用正常启动
4. Consumer端正常调用
4. 观察Zookeeper节点数据，元数据节点/dubbo/metadata 未创建

### Expected Result
元数据正常上报

### Actual Result

元数据节点在Zookeeper上未创建，元数据未上报

> 将dubbo版本号更改为2.7.4.1、2.7.3，代码或配置未改动，元数据正常上报

portToRegistry = portToBind;
        }
        return portToRegistry;
    }
    private Integer parsePort(String configPort) {
        Integer port = null;
        if (configPort != null && configPort.length() > 0) {
            try {
                Integer intPort = Integer.parseInt(configPort);
                if (isInvalidPort(intPort)) {
                    throw new IllegalArgumentException("Specified invalid port from env value:" + configPort);
                }
                port = intPort;
            } catch (Exception e) {
                throw new IllegalArgumentException("Specified invalid port from env value:" + configPort);
            }
        }
        return port;
    }
    private String getValueFromConfig(ProtocolConfig protocolConfig, String key) {
        String protocolPrefix = protocolConfig.getName().toUpperCase() + "_";
        String port = ConfigUtils.getSystemProperty(protocolPrefix + key);
        if (StringUtils.isEmpty(port)) {
            port = ConfigUtils.getSystemProperty(key);
        }
        return port;
    }
    private Integer getRandomPort(String protocol) {
        protocol = protocol.toLowerCase();
        return RANDOM_PORT_MAP.getOrDefault(protocol, Integer.MIN_VALUE);