diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/AbstractServiceDiscovery.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/AbstractServiceDiscovery.java index 9da383d771..b3b771c20e 100644 --- a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/AbstractServiceDiscovery.java +++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/AbstractServiceDiscovery.java @@ -132,11 +132,13 @@ public abstract class AbstractServiceDiscovery implements ServiceDiscovery { if (isDestroy) { return; } - ServiceInstance serviceInstance = createServiceInstance(this.metadataInfo); - if (!isValidInstance(serviceInstance)) { - return; + if (this.serviceInstance == null) { + ServiceInstance serviceInstance = createServiceInstance(this.metadataInfo); + if (!isValidInstance(serviceInstance)) { + return; + } + this.serviceInstance = serviceInstance; } - this.serviceInstance = serviceInstance; boolean revisionUpdated = calOrUpdateInstanceRevision(this.serviceInstance); if (revisionUpdated) { reportMetadata(this.metadataInfo);