diff --git a/clients/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/ServiceCenterDiscovery.java b/clients/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/ServiceCenterDiscovery.java
index 625db29..43a9f9a 100644
--- a/clients/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/ServiceCenterDiscovery.java
+++ b/clients/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/ServiceCenterDiscovery.java
@@ -98,6 +98,8 @@
 
   private boolean started = false;
 
+  private final Object lock = new Object();
+
   public ServiceCenterDiscovery(ServiceCenterClient serviceCenterClient, EventBus eventBus) {
     super("service-center-discovery-task");
     this.serviceCenterClient = serviceCenterClient;
@@ -124,19 +126,22 @@
     }
   }
 
-  public void register(SubscriptionKey subscriptionKey) {
-    this.instancesCache.computeIfAbsent(subscriptionKey, (key) -> new SubscriptionValue());
-    pullInstance(subscriptionKey, this.instancesCache.get(subscriptionKey));
+  public void registerIfNotPresent(SubscriptionKey subscriptionKey) {
+    if (this.instancesCache.get(subscriptionKey) == null) {
+      synchronized (lock) {
+        if (this.instancesCache.get(subscriptionKey) == null) {
+          SubscriptionValue value = new SubscriptionValue();
+          pullInstance(subscriptionKey, value);
+          this.instancesCache.put(subscriptionKey, value);
+        }
+      }
+    }
   }
 
   public List<MicroserviceInstance> getInstanceCache(SubscriptionKey key) {
     return this.instancesCache.get(key).instancesCache;
   }
 
-  public boolean isRegistered(SubscriptionKey key) {
-    return this.instancesCache.get(key) != null;
-  }
-
   @Subscribe
   public void onPullInstanceEvent(PullInstanceEvent event) {
     pullAllInstance();
diff --git a/demo/demo-multi-service-center/demo-multi-service-center-client/src/main/java/org/apache/servicecomb/demo/multiServiceCenterClient/RegistryClientTest.java b/demo/demo-multi-service-center/demo-multi-service-center-client/src/main/java/org/apache/servicecomb/demo/multiServiceCenterClient/RegistryClientTest.java
index d64dc24..ef523b2 100644
--- a/demo/demo-multi-service-center/demo-multi-service-center-client/src/main/java/org/apache/servicecomb/demo/multiServiceCenterClient/RegistryClientTest.java
+++ b/demo/demo-multi-service-center/demo-multi-service-center-client/src/main/java/org/apache/servicecomb/demo/multiServiceCenterClient/RegistryClientTest.java
@@ -133,7 +133,7 @@
     ServiceCenterDiscovery discovery = new ServiceCenterDiscovery(serviceCenterClient, eventBus);
     discovery.updateMyselfServiceId(microservice.getServiceId());
     discovery.startDiscovery();
-    discovery.register(new SubscriptionKey(microservice.getAppId(), microservice.getServiceName()));
+    discovery.registerIfNotPresent(new SubscriptionKey(microservice.getAppId(), microservice.getServiceName()));
     discoveryCounter.await(30000, TimeUnit.MILLISECONDS);
     TestMgr.check(instances != null, true);
     TestMgr.check(instances.size(), 1);
