mirror of
https://gitee.com/mirrors/Spring-Cloud-Alibaba.git
synced 2021-06-26 13:25:11 +08:00
fix #1259
This commit is contained in:
parent
6ccdfab3cc
commit
2545e11c06
@ -51,6 +51,7 @@ import static org.apache.dubbo.common.constants.CommonConstants.PROTOCOL_KEY;
|
|||||||
import static org.apache.dubbo.common.constants.CommonConstants.PROVIDER_SIDE;
|
import static org.apache.dubbo.common.constants.CommonConstants.PROVIDER_SIDE;
|
||||||
import static org.apache.dubbo.common.constants.CommonConstants.SIDE_KEY;
|
import static org.apache.dubbo.common.constants.CommonConstants.SIDE_KEY;
|
||||||
import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;
|
import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;
|
||||||
|
import static org.apache.dubbo.common.constants.RegistryConstants.CATEGORY_KEY;
|
||||||
import static org.apache.dubbo.common.constants.RegistryConstants.EMPTY_PROTOCOL;
|
import static org.apache.dubbo.common.constants.RegistryConstants.EMPTY_PROTOCOL;
|
||||||
import static org.apache.dubbo.registry.Constants.ADMIN_PROTOCOL;
|
import static org.apache.dubbo.registry.Constants.ADMIN_PROTOCOL;
|
||||||
import static org.springframework.util.StringUtils.hasText;
|
import static org.springframework.util.StringUtils.hasText;
|
||||||
@ -226,10 +227,11 @@ public abstract class AbstractSpringCloudRegistry extends FailbackRegistry {
|
|||||||
// fix https://github.com/alibaba/spring-cloud-alibaba/issues/753
|
// fix https://github.com/alibaba/spring-cloud-alibaba/issues/753
|
||||||
// Re-obtain the latest list of available metadata address here, ip or port may change.
|
// Re-obtain the latest list of available metadata address here, ip or port may change.
|
||||||
// by https://github.com/wangzihaogithub
|
// by https://github.com/wangzihaogithub
|
||||||
dubboMetadataConfigServiceProxy.removeProxy(serviceName);
|
// When the last service provider is closed, 【fix 1259】while close the channel,when up a new provider then repository.initializeMetadata(serviceName) will throw Exception.
|
||||||
repository.removeMetadataAndInitializedService(serviceName);
|
// dubboMetadataConfigServiceProxy.removeProxy(serviceName);
|
||||||
dubboGenericServiceFactory.destroy(serviceName);
|
// repository.removeMetadataAndInitializedService(serviceName);
|
||||||
repository.initializeMetadata(serviceName);
|
// dubboGenericServiceFactory.destroy(serviceName);
|
||||||
|
// repository.initializeMetadata(serviceName);
|
||||||
if (CollectionUtils.isEmpty(serviceInstances)) {
|
if (CollectionUtils.isEmpty(serviceInstances)) {
|
||||||
if (logger.isWarnEnabled()) {
|
if (logger.isWarnEnabled()) {
|
||||||
logger.warn(
|
logger.warn(
|
||||||
@ -237,6 +239,9 @@ public abstract class AbstractSpringCloudRegistry extends FailbackRegistry {
|
|||||||
+ "available , please make sure the further impact",
|
+ "available , please make sure the further impact",
|
||||||
serviceName, url.getServiceKey());
|
serviceName, url.getServiceKey());
|
||||||
}
|
}
|
||||||
|
dubboMetadataConfigServiceProxy.removeProxy(serviceName);
|
||||||
|
repository.removeMetadataAndInitializedService(serviceName);
|
||||||
|
dubboGenericServiceFactory.destroy(serviceName);
|
||||||
/**
|
/**
|
||||||
* URLs with {@link RegistryConstants#EMPTY_PROTOCOL}
|
* URLs with {@link RegistryConstants#EMPTY_PROTOCOL}
|
||||||
*/
|
*/
|
||||||
@ -299,7 +304,9 @@ public abstract class AbstractSpringCloudRegistry extends FailbackRegistry {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private List<URL> emptyURLs(URL url) {
|
private List<URL> emptyURLs(URL url) {
|
||||||
return asList(from(url).setProtocol(EMPTY_PROTOCOL).build());
|
// issue : When the last service provider is closed, the client still periodically connects to the last provider.n
|
||||||
|
// fix https://github.com/alibaba/spring-cloud-alibaba/issues/1259
|
||||||
|
return asList(from(url).setProtocol(EMPTY_PROTOCOL).removeParameter(CATEGORY_KEY).build());
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<ServiceInstance> getServiceInstances(String serviceName) {
|
private List<ServiceInstance> getServiceInstances(String serviceName) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user