- [x] I have searched the [issues](https://github.com/apache/dubbo/issues) of this repository and believe that this is not a duplicate.
- [x] 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.6.2
* Operating System version: Linux
* Java version: 1.8

### Steps to reproduce this issue

1. Restart dubbo service.
2. Ping hostname becomes slow.


### Expected Result

Start dubbo service quickly.

### Actual Result

![image](https://user-images.githubusercontent.com/15684156/61106851-f4d04500-a4b0-11e9-898a-4c55a78f7654.png)

Dubbo service startup is slow, it takes two hours.

Thread dump like this:

![image](https://user-images.githubusercontent.com/15684156/61106974-4678cf80-a4b1-11e9-9c03-67a9f39f5d99.png)

[More details](https://crossoverjie.top/2019/07/05/troubleshoot/dubbo-start-slow/)
}
        setProvider(
                ConfigManager.getInstance()
                        .getDefaultProvider()
                        .orElseGet(() -> {
                            ProviderConfig providerConfig = new ProviderConfig();
                            providerConfig.refresh();
                            return providerConfig;
                        })
        );
    }
    private void checkProtocol() {
        if (CollectionUtils.isEmpty(protocols) && provider != null) {
            setProtocols(provider.getProtocols());
        }
        convertProtocolIdsToProtocols();
    }
    private void convertProtocolIdsToProtocols() {
        if (StringUtils.isEmpty(protocolIds) && CollectionUtils.isEmpty(protocols)) {
            List<String> configedProtocols = new ArrayList<>();
            configedProtocols.addAll(getSubProperties(Environment.getInstance()
                    .getExternalConfigurationMap(), PROTOCOLS_SUFFIX));
            configedProtocols.addAll(getSubProperties(Environment.getInstance()
                    .getAppExternalConfigurationMap(), PROTOCOLS_SUFFIX));
            protocolIds = String.join(",", configedProtocols);
        }
        if (StringUtils.isEmpty(protocolIds)) {
            if (CollectionUtils.isEmpty(protocols)) {
                setProtocols(
                        ConfigManager.getInstance().getDefaultProtocols()