### Environment

* Dubbo version: 3.0
集成构建时，执行GenericServiceTest测试方法下面的语句时，
```
        // Test generic service without interface class locally
        result = genericServiceWithoutInterfaceRef.$invoke("sayHello", new String[]{"java.lang.String"}, new Object[]{"generic"});
```
ReferenceConfig的checkInvokerAvailable方法有时会抛异常，导致集成构建失败，异常信息如下：
java.lang.IllegalStateException: Failed to check the status of the service org.apache.dubbo.config.spring.api.LocalMissClass. No provider available for the service org.apache.dubbo.config.spring.api.LocalMissClass from the url dubbo://10.1.0.184/org.apache.dubbo.config.spring.api.LocalMissClass?application=dubbo-generic-consumer&dubbo=2.0.2&file.cache=false&generic=true&init=false&interface=org.apache.dubbo.config.spring.api.LocalMissClass&metadata-type=remote&pid=9816&register.ip=10.1.0.184&release=3.0.3-SNAPSHOT&side=consumer&sticky=false&timestamp=1630699707283 to the consumer 10.1.0.184 use dubbo version 3.0.3-SNAPSHOT
	at org.apache.dubbo.config.spring.schema.GenericServiceTest.testGeneric(GenericServiceTest.java:97)

* 更新2021-09-10：
执行ServiceDiscoveryRegistryDirectory的refreshInvoker方法刷新urlInvokerMap的线程和执行ReferenceConfig的init方法的线程不是一个线程，刷新的线程名是main-EventThread，执行init的线程是main线程。而refreshInvoker方法调用toInvokers时会先把当前的this.urlInvokerMap里面的entry全清，在将newUrlInvokerMap重新赋值给this.urlInvokerMap前，如果恰好遇到执行init的main线程在执行isAvailable判断就会因为this.urlInvokerMap没有entry而返回false。
重现方法：在ServiceDiscoveryRegistryDirectory的toInvokers方法调用返回的下一行代码设置断点，在isAvailable的Map<String, Invoker<T>> localUrlInvokerMap = urlInvokerMap处设置断点，执行到toInvokers返回时暂停main-EventThread线程执行，切换到停留在isAvailable的main线程继续执行，就能重现这个issue。

PS：
采用genericServiceWithoutInterface方式的JavaConfigReferenceBeanTest的testGenericServiceAnnotationBean方法的165行有时也抛异常
* 更新2021-09-10：这个RpcException异常可能是上一个测试方法执行AfterEach释放了全局资源干扰了仍在运行的dubbo后台线程导致的，已另开issue
```
        Object sayHelloResult = genericServiceWithoutInterface.$invoke("sayHello", new String[]{"java.lang.String"}, new Object[]{"Dubbo"});
```
只是抛的异常是RpcException: Directory already destroyed
```
2021-09-03T18:39:04.9792146Z org.apache.dubbo.rpc.RpcException: Directory already destroyed .url: zookeeper://127.0.0.1:2181/org.apache.dubbo.registry.RegistryService?application=consumer-app&dubbo=2.0.2&file.cache=false&pid=8884&release=3.0.3-SNAPSHOT&timestamp=1630694303313
2021-09-03T18:39:04.9797067Z 	at org.apache.dubbo.config.spring.reference.javaconfig.JavaConfigReferenceBeanTest.testGenericServiceAnnotationBean(JavaConfigReferenceBeanTest.java:165)
```
* @since 2.7.5
     */
    String SERVICE_REGISTRY_PROTOCOL = "service-discovery-registry";
    /**
     * The parameter key of the subscribed service names for Service-Oriented Registry
     * <p>
     * If there is a multiple-values, the  "comma" is the separator.
     *
     * @since 2.7.5
     */
    String SUBSCRIBED_SERVICE_NAMES_KEY = "subscribed-services";
    String PROVIDED_BY = "provided-by";
    /**
     * The request size of service instances
     *
     * @since 2.7.5
     */
    String INSTANCES_REQUEST_SIZE_KEY = "instances-request-size";
    /**
     * The default request size of service instances
     */
    int DEFAULT_INSTANCES_REQUEST_SIZE = 100;
    String ACCEPTS_KEY = "accepts";
    String REGISTRY_ZONE = "registry_zone";
    String REGISTRY_ZONE_FORCE = "registry_zone_force";
    String ZONE_KEY = "zone";
    String REGISTRY_SERVICE_REFERENCE_PATH = "org.apache.dubbo.registry.RegistryService";
    String INIT = "INIT";
}