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

### Environment

* Dubbo version: 2.7.0
* Operating System version: Windows7
* Java version: jdk8

### Steps to reproduce this issue

1. stop dubbo service
2. dubbo client set checked = true.  do get cudbbo client for times.
3. the size of list field [urls] in ReferenceConfig wil increase

Pls. provide [GitHub address] to reproduce this issue.
(project)[https://github.com/vio-lin/incubator-dubbo/tree/error-situation]  
run java file 
 incubator-dubbo\dubbo-demo\dubbo-demo-xml\dubbo-demo-xml-consumer\src\main\java\org\apache\dubbo\demo\consumer\Application.java
### Expected Result
the [urls] in ReferenceConfig will be updated.

### Actual Result
the avalidable registery urls be add to [urls] in ReferenceConfig

// 
        return (T) PROXY_FACTORY.getProxy(invoker);
    }
    /**
     * Figure out should refer the service in the same JVM from configurations. The default behavior is true
     * 1. if injvm is specified, then use it
     * 2. then if a url is specified, then assume it's a remote call
     * 3. otherwise, check scope parameter
     * 4. if scope is not specified but the target service is provided in the same JVM, then prefer to make the local
     * call, which is the default behavior
     */
    protected boolean shouldJvmRefer(Map<String, String> map) {
        URL tmpUrl = new URL("temp", "localhost", 0, map);
        boolean isJvmRefer;
        if (isInjvm() == null) {
            // 
            if (url != null && url.length() > 0) {
                isJvmRefer = false;
            } else {
                // 
                isJvmRefer = InjvmProtocol.getInjvmProtocol().isInjvmRefer(tmpUrl);
            }
        } else {
            isJvmRefer = isInjvm();
        }
        return isJvmRefer;
    }
    protected boolean shouldCheck() {
        Boolean shouldCheck = isCheck();
        if (shouldCheck == null && getConsumer() != null) {