### Environment

* Dubbo version: 3.0

### Steps to reproduce this issue
翻看github构建日志本来是去找GenericServiceTest为啥常常出现java.lang.IllegalStateException: Failed to check the status of the service org.apache.dubbo.config.spring.api.LocalMissClass的线索，相关的线索没找到，却找到了这个
2021-09-04T20:19:48.3933128Z [04/09/21 20:19:47:427 UTC] main  WARN integration.RegistryProtocol:  [DUBBO] unsubscribe listener == null, dubbo version: 3.0.3-SNAPSHOT, current host: 172.17.16.1
2021-09-04T20:19:48.3934495Z java.lang.IllegalArgumentException: unsubscribe listener == null
2021-09-04T20:19:48.3936385Z 	at org.apache.dubbo.registry.support.AbstractRegistry.unsubscribe(AbstractRegistry.java:329)
2021-09-04T20:19:48.3938947Z 	at org.apache.dubbo.registry.support.FailbackRegistry.unsubscribe(FailbackRegistry.java:328)
2021-09-04T20:19:48.3942540Z 	at org.apache.dubbo.registry.ListenerRegistryWrapper.unsubscribe(ListenerRegistryWrapper.java:134)
2021-09-04T20:19:48.3945186Z 	at org.apache.dubbo.registry.integration.RegistryProtocol$ExporterChangeableWrapper.unexport(RegistryProtocol.java:876)
2021-09-04T20:19:48.3948433Z 	at org.apache.dubbo.registry.integration.RegistryProtocol$DestroyableExporter.unexport(RegistryProtocol.java:669)
2021-09-04T20:19:48.3950662Z 	at org.apache.dubbo.config.ServiceConfig.unexport(ServiceConfig.java:187)
2021-09-04T20:19:48.3952706Z 	at org.apache.dubbo.config.bootstrap.DubboBootstrap.lambda$unexportServices$9(DubboBootstrap.java:1487)
2021-09-04T20:19:48.3954404Z 	at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
2021-09-04T20:19:48.3956255Z 	at org.apache.dubbo.config.bootstrap.DubboBootstrap.unexportServices(DubboBootstrap.java:1484)
2021-09-04T20:19:48.3958714Z 	at org.apache.dubbo.config.bootstrap.DubboBootstrap.destroy(DubboBootstrap.java:1635)
2021-09-04T20:19:48.3960885Z 	at org.apache.dubbo.config.bootstrap.DubboBootstrap.reset(DubboBootstrap.java:239)
2021-09-04T20:19:48.3963018Z 	at org.apache.dubbo.config.bootstrap.DubboBootstrap.reset(DubboBootstrap.java:225)
2021-09-04T20:19:48.3965492Z 	at org.apache.dubbo.config.spring.schema.GenericServiceTest.tearDown(GenericServiceTest.java:67)
并且不止这一个测试类抛这个异常，有十多个测试类都抛这个东西，看了看代码，感觉应该是重复注销导致的，RegistryProtocol注销listener前检查一下是否为null应该就能避免这个异常了。
public <T> ClusterInvoker<T> getInvoker(Cluster cluster, Registry registry, Class<T> type, URL url) {
        
        DynamicDirectory<T> directory = new RegistryDirectory<>(type, url);
        return doCreateInvoker(directory, cluster, registry, type);
    }
    protected <T> ClusterInvoker<T> doCreateInvoker(DynamicDirectory<T> directory, Cluster cluster, Registry registry, Class<T> type) {
        directory.setRegistry(registry);
        directory.setProtocol(protocol);
        
        Map<String, String> parameters = new HashMap<>(directory.getConsumerUrl().getParameters());
        URL urlToRegistry = new ServiceConfigURL(
            parameters.get(PROTOCOL_KEY) == null ? DUBBO : parameters.get(PROTOCOL_KEY),
            parameters.remove(REGISTER_IP_KEY), 0, getPath(parameters, type), parameters);
        urlToRegistry = urlToRegistry.setScopeModel(directory.getConsumerUrl().getScopeModel());
        urlToRegistry = urlToRegistry.setServiceModel(directory.getConsumerUrl().getServiceModel());
        if (directory.isShouldRegister()) {
            directory.setRegisteredConsumerUrl(urlToRegistry);
            registry.register(directory.getRegisteredConsumerUrl());
        }
        directory.buildRouterChain(urlToRegistry);
        directory.subscribe(toSubscribeUrl(urlToRegistry));
        return (ClusterInvoker<T>) cluster.join(directory);
    }
    public <T> void reRefer(ClusterInvoker<?> invoker, URL newSubscribeUrl) {
        if (!(invoker instanceof MigrationClusterInvoker)) {
            logger.error("Only invoker type of MigrationClusterInvoker supports reRefer, current invoker is " + invoker.getClass());
            return;
        }
        MigrationClusterInvoker<?> migrationClusterInvoker = (MigrationClusterInvoker<?>) invoker;
        migrationClusterInvoker.reRefer(newSubscribeUrl);