[SCB-2578]instance pull should avoid too many queued events
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 f0c2673..6b5578e 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
@@ -45,6 +45,8 @@
 
   private static final String ALL_VERSION = "0+";
 
+  private static volatile boolean pullInstanceTaskOnceInProgress = false;
+
   public static class SubscriptionKey {
     final String appId;
 
@@ -144,7 +146,12 @@
 
   @Subscribe
   public void onPullInstanceEvent(PullInstanceEvent event) {
-    pullAllInstance();
+    // to avoid too many pulls queued.
+    if (pullInstanceTaskOnceInProgress) {
+      return;
+    }
+    pullInstanceTaskOnceInProgress = true;
+    startTask(new PullInstanceOnceTask());
   }
 
   private void pullInstance(SubscriptionKey k, SubscriptionValue v) {
@@ -205,6 +212,17 @@
     }
   }
 
+  class PullInstanceOnceTask implements Task {
+    @Override
+    public void execute() {
+      try {
+        pullAllInstance();
+      } finally {
+        pullInstanceTaskOnceInProgress = false;
+      }
+    }
+  }
+
   private synchronized void pullAllInstance() {
     instancesCache.forEach((k, v) -> {
       pullInstance(k, v);
diff --git a/governance/src/main/java/org/apache/servicecomb/governance/handler/InstanceIsolationHandler.java b/governance/src/main/java/org/apache/servicecomb/governance/handler/InstanceIsolationHandler.java
index 85afecd..8ab3333 100644
--- a/governance/src/main/java/org/apache/servicecomb/governance/handler/InstanceIsolationHandler.java
+++ b/governance/src/main/java/org/apache/servicecomb/governance/handler/InstanceIsolationHandler.java
@@ -34,7 +34,7 @@
 import io.micrometer.core.instrument.MeterRegistry;
 
 public class InstanceIsolationHandler extends AbstractGovernanceHandler<CircuitBreaker, CircuitBreakerPolicy> {
-  private static final Logger LOGGER = LoggerFactory.getLogger(CircuitBreakerHandler.class);
+  private static final Logger LOGGER = LoggerFactory.getLogger(InstanceIsolationHandler.class);
 
   private static final String DEFAULT_SERVICE_NAME = "default";