mirror of
https://gitee.com/mirrors/Spring-Cloud-Alibaba.git
synced 2021-06-26 13:25:11 +08:00
Merge pull request #1274 from wangzihaogithub/fix#753
[fix #753] https://github.com/alibaba/spring-cloud-alibaba/issues/753
This commit is contained in:
commit
3c6a54c889
@ -222,10 +222,15 @@ public abstract class AbstractSpringCloudRegistry extends FailbackRegistry {
|
|||||||
Collection<ServiceInstance> serviceInstances = serviceInstancesFunction
|
Collection<ServiceInstance> serviceInstances = serviceInstancesFunction
|
||||||
.apply(serviceName);
|
.apply(serviceName);
|
||||||
|
|
||||||
if (CollectionUtils.isEmpty(serviceInstances)) {
|
// issue : ReStarting a consumer and then starting a provider does not automatically discover the registration
|
||||||
|
// 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.
|
||||||
|
// by https://github.com/wangzihaogithub
|
||||||
dubboMetadataConfigServiceProxy.removeProxy(serviceName);
|
dubboMetadataConfigServiceProxy.removeProxy(serviceName);
|
||||||
repository.removeMetadataAndInitializedService(serviceName);
|
repository.removeMetadataAndInitializedService(serviceName);
|
||||||
dubboGenericServiceFactory.destroy(serviceName);
|
dubboGenericServiceFactory.destroy(serviceName);
|
||||||
|
repository.initializeMetadata(serviceName);
|
||||||
|
if (CollectionUtils.isEmpty(serviceInstances)) {
|
||||||
if (logger.isWarnEnabled()) {
|
if (logger.isWarnEnabled()) {
|
||||||
logger.warn(
|
logger.warn(
|
||||||
"There is no instance from service[name : {}], and then Dubbo Service[key : {}] will not be "
|
"There is no instance from service[name : {}], and then Dubbo Service[key : {}] will not be "
|
||||||
@ -246,18 +251,6 @@ public abstract class AbstractSpringCloudRegistry extends FailbackRegistry {
|
|||||||
|
|
||||||
DubboMetadataService dubboMetadataService = dubboMetadataConfigServiceProxy
|
DubboMetadataService dubboMetadataService = dubboMetadataConfigServiceProxy
|
||||||
.getProxy(serviceName);
|
.getProxy(serviceName);
|
||||||
|
|
||||||
if (dubboMetadataService == null) { // If not found, try to initialize
|
|
||||||
if (logger.isInfoEnabled()) {
|
|
||||||
logger.info(
|
|
||||||
"The metadata of Dubbo service[key : {}] can't be found when the subscribed service[name : {}], "
|
|
||||||
+ "and then try to initialize it",
|
|
||||||
url.getServiceKey(), serviceName);
|
|
||||||
}
|
|
||||||
repository.initializeMetadata(serviceName);
|
|
||||||
dubboMetadataService = dubboMetadataConfigServiceProxy.getProxy(serviceName);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dubboMetadataService == null) { // It makes sure not-found, return immediately
|
if (dubboMetadataService == null) { // It makes sure not-found, return immediately
|
||||||
if (logger.isWarnEnabled()) {
|
if (logger.isWarnEnabled()) {
|
||||||
logger.warn(
|
logger.warn(
|
||||||
@ -269,7 +262,6 @@ public abstract class AbstractSpringCloudRegistry extends FailbackRegistry {
|
|||||||
}
|
}
|
||||||
|
|
||||||
List<URL> exportedURLs = getExportedURLs(dubboMetadataService, url);
|
List<URL> exportedURLs = getExportedURLs(dubboMetadataService, url);
|
||||||
|
|
||||||
for (URL exportedURL : exportedURLs) {
|
for (URL exportedURL : exportedURLs) {
|
||||||
String protocol = exportedURL.getProtocol();
|
String protocol = exportedURL.getProtocol();
|
||||||
List<URL> subscribedURLs = new LinkedList<>();
|
List<URL> subscribedURLs = new LinkedList<>();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user