<!-- 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: Mac OS
* Java version: 8

### Steps to reproduce this issue

1. set dubbo.protocol.port=30880
2. define dubbo service to export
3. create an @Bean to invoke dubbo reference
4. start up spring boot application
5. service export port is 30880, metadata service export port is 20880

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

### Expected Behavior

metadata service and instance export port is 30880

### Actual Behavior

metadata service and instance export port is 20880

### Issue code debug
![image](https://user-images.githubusercontent.com/7418602/169072305-1b0c83ab-0407-4bc0-aa1a-387c475d82f0.png)
![image](https://user-images.githubusercontent.com/7418602/169070767-406c3daa-ef0b-4b1a-89ef-44fb1cbcfa4f.png)
![image](https://user-images.githubusercontent.com/7418602/169071049-4607808e-9958-4f8d-888c-5f05135e2fbb.png)
![image](https://user-images.githubusercontent.com/7418602/169070937-8ac15446-5947-4a1f-8a2e-eba5c55e579f.png)


serviceConfig.unexport();
            metadataService.setMetadataURL(null);
        }
        return this;
    }
    public boolean isExported() {
        return serviceConfig != null && serviceConfig.isExported() && !serviceConfig.isUnexported();
    }
    private ApplicationConfig getApplicationConfig() {
        return applicationModel.getApplicationConfigManager().getApplication().get();
    }
    private ProtocolConfig generateMetadataProtocol() {
        
        String specifiedProtocol = getSpecifiedProtocol();
        
        Integer port = getSpecifiedPort();
        ProtocolConfig protocolConfig = new ProtocolConfig();
        protocolConfig.setName(specifiedProtocol);
        if (port == null || port < -1) {
            try {
                if (logger.isInfoEnabled()) {
                    logger.info("Metadata Service Port hasn't been set will use default protocol defined in protocols.");
                }
                Protocol protocol = applicationModel.getExtensionLoader(Protocol.class).getExtension(specifiedProtocol);
                if (protocol != null && protocol.getServers() != null) {
                    Iterator<ProtocolServer> it = protocol.getServers().iterator();
                    if (it.hasNext()) {
                        String addr = it.next().getAddress();
                        String rawPort = addr.substring(addr.indexOf(":") + 1);
                        protocolConfig.setPort(Integer.parseInt(rawPort));