[ 
https://issues.apache.org/jira/browse/SCB-612?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16578096#comment-16578096
 ] 

ASF GitHub Bot commented on SCB-612:
------------------------------------

heyile closed pull request #861: [SCB-612]delete useless MicroserviceMetaManager
URL: https://github.com/apache/incubator-servicecomb-java-chassis/pull/861
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git 
a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/RestEngineSchemaListener.java
 
b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/RestEngineSchemaListener.java
index 8cc33a582..14e4c39e3 100644
--- 
a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/RestEngineSchemaListener.java
+++ 
b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/RestEngineSchemaListener.java
@@ -20,25 +20,16 @@
 import java.util.HashMap;
 import java.util.Map;
 
-import javax.inject.Inject;
-
 import org.apache.servicecomb.common.rest.locator.ServicePathManager;
 import org.apache.servicecomb.core.BootListener;
+import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.definition.MicroserviceMeta;
-import org.apache.servicecomb.core.definition.MicroserviceMetaManager;
 import org.apache.servicecomb.core.definition.SchemaMeta;
 import org.apache.servicecomb.core.definition.loader.SchemaListener;
-import org.apache.servicecomb.serviceregistry.RegistryUtils;
 import org.springframework.stereotype.Component;
 
 @Component
 public class RestEngineSchemaListener implements SchemaListener, BootListener {
-  private MicroserviceMetaManager microserviceMetaManager;
-
-  @Inject
-  public void setMicroserviceMetaManager(MicroserviceMetaManager 
microserviceMetaManager) {
-    this.microserviceMetaManager = microserviceMetaManager;
-  }
 
   @Override
   public void onBootEvent(BootEvent event) {
@@ -46,8 +37,7 @@ public void onBootEvent(BootEvent event) {
       return;
     }
 
-    MicroserviceMeta microserviceMeta =
-        
microserviceMetaManager.getOrCreateMicroserviceMeta(RegistryUtils.getMicroservice());
+    MicroserviceMeta microserviceMeta = 
SCBEngine.getInstance().getProducerMicroserviceMeta();
     ServicePathManager servicePathManager = 
ServicePathManager.getServicePathManager(microserviceMeta);
     if (servicePathManager != null) {
       servicePathManager.buildProducerPaths();
diff --git 
a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/RestProducerInvocation.java
 
b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/RestProducerInvocation.java
index 673c68447..f3cce625e 100644
--- 
a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/RestProducerInvocation.java
+++ 
b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/RestProducerInvocation.java
@@ -22,14 +22,12 @@
 import org.apache.servicecomb.common.rest.filter.HttpServerFilter;
 import org.apache.servicecomb.common.rest.locator.OperationLocator;
 import org.apache.servicecomb.common.rest.locator.ServicePathManager;
-import org.apache.servicecomb.core.Const;
-import org.apache.servicecomb.core.CseContext;
+import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.Transport;
 import org.apache.servicecomb.core.definition.MicroserviceMeta;
 import org.apache.servicecomb.core.invocation.InvocationFactory;
 import org.apache.servicecomb.foundation.vertx.http.HttpServletRequestEx;
 import org.apache.servicecomb.foundation.vertx.http.HttpServletResponseEx;
-import org.apache.servicecomb.serviceregistry.RegistryUtils;
 import org.apache.servicecomb.swagger.invocation.exception.InvocationException;
 
 public class RestProducerInvocation extends AbstractRestInvocation {
@@ -54,13 +52,7 @@ public void invoke(Transport transport, HttpServletRequestEx 
requestEx, HttpServ
   }
 
   protected void findRestOperation() {
-    String targetMicroserviceName = 
requestEx.getHeader(Const.TARGET_MICROSERVICE);
-    if (targetMicroserviceName == null) {
-      // for compatible
-      targetMicroserviceName = 
RegistryUtils.getMicroservice().getServiceName();
-    }
-    MicroserviceMeta selfMicroserviceMeta =
-        
CseContext.getInstance().getMicroserviceMetaManager().ensureFindValue(targetMicroserviceName);
+    MicroserviceMeta selfMicroserviceMeta = 
SCBEngine.getInstance().getProducerMicroserviceMeta();
     findRestOperation(selfMicroserviceMeta);
   }
 
diff --git 
a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestAbstractRestInvocation.java
 
b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestAbstractRestInvocation.java
index cc0c2c013..2b0fffae2 100644
--- 
a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestAbstractRestInvocation.java
+++ 
b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestAbstractRestInvocation.java
@@ -39,7 +39,6 @@
 import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.SCBStatus;
 import org.apache.servicecomb.core.definition.MicroserviceMeta;
-import org.apache.servicecomb.core.definition.MicroserviceMetaManager;
 import org.apache.servicecomb.core.definition.OperationMeta;
 import org.apache.servicecomb.core.definition.SchemaMeta;
 import org.apache.servicecomb.core.event.InvocationFinishEvent;
@@ -86,9 +85,6 @@
   @Mocked
   ReferenceConfig endpoint;
 
-  @Mocked
-  MicroserviceMetaManager microserviceMetaManager;
-
   @Mocked
   SchemaMeta schemaMeta;
 
@@ -691,8 +687,6 @@ public void findRestOperationServicePathManagerNull(@Mocked 
MicroserviceMeta mic
       {
         requestEx.getHeader(Const.TARGET_MICROSERVICE);
         result = "ms";
-        microserviceMetaManager.ensureFindValue("ms");
-        result = microserviceMeta;
         ServicePathManager.getServicePathManager(microserviceMeta);
         result = null;
       }
diff --git 
a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestRestProducerInvocation.java
 
b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestRestProducerInvocation.java
index 60a503cf3..671106b3c 100644
--- 
a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestRestProducerInvocation.java
+++ 
b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestRestProducerInvocation.java
@@ -27,10 +27,9 @@
 import org.apache.servicecomb.common.rest.locator.OperationLocator;
 import org.apache.servicecomb.common.rest.locator.ServicePathManager;
 import org.apache.servicecomb.core.Const;
-import org.apache.servicecomb.core.CseContext;
+import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.Transport;
 import org.apache.servicecomb.core.definition.MicroserviceMeta;
-import org.apache.servicecomb.core.definition.MicroserviceMetaManager;
 import org.apache.servicecomb.foundation.vertx.http.AbstractHttpServletRequest;
 import org.apache.servicecomb.foundation.vertx.http.HttpServletRequestEx;
 import org.apache.servicecomb.foundation.vertx.http.HttpServletResponseEx;
@@ -63,7 +62,7 @@
   RestOperationMeta restOperationMeta;
 
   @Mocked
-  MicroserviceMetaManager microserviceMetaManager;
+  MicroserviceMeta microserviceMeta;
 
   List<HttpServerFilter> httpServerFilters = Collections.emptyList();
 
@@ -80,11 +79,6 @@
   @Rule
   public ExpectedException expectedException = ExpectedException.none();
 
-  @Before
-  public void setup() {
-    
CseContext.getInstance().setMicroserviceMetaManager(microserviceMetaManager);
-  }
-
   private void initRestProducerInvocation() {
     restProducerInvocation.transport = transport;
     restProducerInvocation.requestEx = requestEx;
@@ -93,9 +87,14 @@ private void initRestProducerInvocation() {
     restProducerInvocation.httpServerFilters = httpServerFilters;
   }
 
+  @Before
+  public void setup() {
+    SCBEngine.getInstance().setProducerMicroserviceMeta(microserviceMeta);
+  }
+
   @After
   public void teardown() {
-    CseContext.getInstance().setMicroserviceMetaManager(null);
+    SCBEngine.getInstance().setProducerMicroserviceMeta(null);
   }
 
   @Test
@@ -149,28 +148,32 @@ public void findRestOperationNameFromRegistry() {
     Microservice microservice = new Microservice();
     microservice.setServiceName("ms");
 
-    Exception e = new Exception("stop");
     new Expectations(RegistryUtils.class) {
       {
         requestEx.getHeader(Const.TARGET_MICROSERVICE);
         result = null;
         RegistryUtils.getMicroservice();
         result = microservice;
-        microserviceMetaManager.ensureFindValue("ms");
-        result = e;
+      }
+    };
+    new Expectations(ServicePathManager.class) {
+      {
+        //just make the method throw Exception
+        ServicePathManager.getServicePathManager(microserviceMeta);
+        result = null;
       }
     };
     restProducerInvocation = new RestProducerInvocation();
     initRestProducerInvocation();
 
     expectedException.expect(Exception.class);
-    expectedException.expectMessage("stop");
+    expectedException.expectMessage("[message=Not Found]");
     restProducerInvocation.findRestOperation();
   }
 
   @Test
-  public void findRestOperationNormal(@Mocked MicroserviceMeta 
microserviceMeta,
-      @Mocked ServicePathManager servicePathManager, @Mocked OperationLocator 
locator) {
+  public void findRestOperationNormal(@Mocked ServicePathManager 
servicePathManager,
+      @Mocked OperationLocator locator) {
     requestEx = new AbstractHttpServletRequest() {
       @Override
       public String getRequestURI() {
@@ -190,8 +193,6 @@ public String getHeader(String name) {
     Map<String, String> pathVars = new HashMap<>();
     new Expectations(ServicePathManager.class) {
       {
-        microserviceMetaManager.ensureFindValue("ms");
-        result = microserviceMeta;
         ServicePathManager.getServicePathManager(microserviceMeta);
         result = servicePathManager;
         servicePathManager.producerLocateOperation(anyString, anyString);
diff --git 
a/core/src/main/java/org/apache/servicecomb/core/CseApplicationListener.java 
b/core/src/main/java/org/apache/servicecomb/core/CseApplicationListener.java
index 38793cd10..70c66f89b 100644
--- a/core/src/main/java/org/apache/servicecomb/core/CseApplicationListener.java
+++ b/core/src/main/java/org/apache/servicecomb/core/CseApplicationListener.java
@@ -17,6 +17,7 @@
 
 package org.apache.servicecomb.core;
 
+import org.apache.servicecomb.core.definition.MicroserviceMeta;
 import org.apache.servicecomb.core.definition.loader.SchemaListenerManager;
 import org.apache.servicecomb.core.provider.consumer.ConsumerProviderManager;
 import org.apache.servicecomb.core.provider.producer.ProducerProviderManager;
@@ -64,6 +65,10 @@ public void onApplicationEvent(ApplicationEvent event) {
       }
 
       if (SCBEngine.getInstance().getBootListenerList() == null) {
+        //SCBEngine init first, hence we do not need worry that when other 
beans need use the
+        //producer microserviceMeta, the SCBEngine is not inited.
+        String serviceName = RegistryUtils.getMicroservice().getServiceName();
+        SCBEngine.getInstance().setProducerMicroserviceMeta(new 
MicroserviceMeta(serviceName));
         
SCBEngine.getInstance().setProducerProviderManager(applicationContext.getBean(ProducerProviderManager.class));
         
SCBEngine.getInstance().setConsumerProviderManager(applicationContext.getBean(ConsumerProviderManager.class));
         
SCBEngine.getInstance().setTransportManager(applicationContext.getBean(TransportManager.class));
diff --git a/core/src/main/java/org/apache/servicecomb/core/CseContext.java 
b/core/src/main/java/org/apache/servicecomb/core/CseContext.java
index e372d0aff..45b841570 100644
--- a/core/src/main/java/org/apache/servicecomb/core/CseContext.java
+++ b/core/src/main/java/org/apache/servicecomb/core/CseContext.java
@@ -19,7 +19,6 @@
 
 import javax.inject.Inject;
 
-import org.apache.servicecomb.core.definition.MicroserviceMetaManager;
 import org.apache.servicecomb.core.definition.loader.SchemaListenerManager;
 import org.apache.servicecomb.core.definition.loader.SchemaLoader;
 import org.apache.servicecomb.core.definition.schema.ConsumerSchemaFactory;
@@ -39,8 +38,6 @@ public static CseContext getInstance() {
 
   private SchemaLoader schemaLoader;
 
-  private MicroserviceMetaManager microserviceMetaManager;
-
   private ConsumerSchemaFactory consumerSchemaFactory;
 
   private ConsumerProviderManager consumerProviderManager;
@@ -59,10 +56,6 @@ public SchemaLoader getSchemaLoader() {
     return schemaLoader;
   }
 
-  public MicroserviceMetaManager getMicroserviceMetaManager() {
-    return microserviceMetaManager;
-  }
-
   public ConsumerSchemaFactory getConsumerSchemaFactory() {
     return consumerSchemaFactory;
   }
@@ -88,11 +81,6 @@ public void setSwaggerEnvironment(SwaggerEnvironment 
swaggerEnvironment) {
     this.swaggerEnvironment = swaggerEnvironment;
   }
 
-  @Inject
-  public void setMicroserviceMetaManager(MicroserviceMetaManager 
microserviceMetaManager) {
-    this.microserviceMetaManager = microserviceMetaManager;
-  }
-
   @Inject
   public void setSchemaLoader(SchemaLoader schemaLoader) {
     this.schemaLoader = schemaLoader;
diff --git a/core/src/main/java/org/apache/servicecomb/core/SCBEngine.java 
b/core/src/main/java/org/apache/servicecomb/core/SCBEngine.java
index 6c5ccb3ac..662b64933 100644
--- a/core/src/main/java/org/apache/servicecomb/core/SCBEngine.java
+++ b/core/src/main/java/org/apache/servicecomb/core/SCBEngine.java
@@ -23,6 +23,7 @@
 import org.apache.servicecomb.config.ConfigUtil;
 import org.apache.servicecomb.core.BootListener.BootEvent;
 import org.apache.servicecomb.core.BootListener.EventType;
+import org.apache.servicecomb.core.definition.MicroserviceMeta;
 import org.apache.servicecomb.core.definition.loader.SchemaListenerManager;
 import org.apache.servicecomb.core.endpoint.AbstractEndpointsCache;
 import org.apache.servicecomb.core.event.InvocationFinishEvent;
@@ -52,6 +53,8 @@
 
   private ConsumerProviderManager consumerProviderManager;
 
+  private MicroserviceMeta producerMicroserviceMeta;
+
   private TransportManager transportManager;
 
   private SchemaListenerManager schemaListenerManager;
@@ -64,6 +67,7 @@
 
   private volatile SCBStatus status = SCBStatus.DOWN;
 
+
   public void setStatus(SCBStatus status) {
     this.status = status;
   }
@@ -293,4 +297,12 @@ public ReferenceConfig getReferenceConfigForInvoke(String 
microserviceName) {
 
     return consumerProviderManager.getReferenceConfig(microserviceName);
   }
+
+  public MicroserviceMeta getProducerMicroserviceMeta() {
+    return producerMicroserviceMeta;
+  }
+
+  public void setProducerMicroserviceMeta(MicroserviceMeta 
producerMicroserviceMeta) {
+    this.producerMicroserviceMeta = producerMicroserviceMeta;
+  }
 }
diff --git 
a/core/src/main/java/org/apache/servicecomb/core/definition/MicroserviceMetaManager.java
 
b/core/src/main/java/org/apache/servicecomb/core/definition/MicroserviceMetaManager.java
deleted file mode 100644
index a6b0c2ddc..000000000
--- 
a/core/src/main/java/org/apache/servicecomb/core/definition/MicroserviceMetaManager.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.servicecomb.core.definition;
-
-import java.util.Collection;
-
-import org.apache.commons.lang3.StringUtils;
-import org.apache.servicecomb.foundation.common.RegisterManager;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.springframework.stereotype.Component;
-
-/**
- * key为microserviceName(app内部)或者appId:microserviceName(跨app)
- */
-@Component
-public class MicroserviceMetaManager extends RegisterManager<String, 
MicroserviceMeta> {
-  private static final String MICROSERVICE_SCHEMA_MGR = "microservice meta 
manager";
-
-  private final Object lock = new Object();
-
-  public MicroserviceMetaManager() {
-    super(MICROSERVICE_SCHEMA_MGR);
-  }
-
-  public SchemaMeta ensureFindSchemaMeta(String microserviceName, String 
schemaId) {
-    MicroserviceMeta microserviceMeta = ensureFindValue(microserviceName);
-    return microserviceMeta.ensureFindSchemaMeta(schemaId);
-  }
-
-  public Collection<SchemaMeta> getAllSchemaMeta(String microserviceName) {
-    MicroserviceMeta microserviceMeta = ensureFindValue(microserviceName);
-    return microserviceMeta.getSchemaMetas();
-  }
-
-  public MicroserviceMeta getOrCreateMicroserviceMeta(Microservice 
microservice) {
-    String microserviceName = microservice.getServiceName();
-    MicroserviceMeta microserviceMeta = 
getOrCreateMicroserviceMeta(microserviceName);
-    if (!StringUtils.isEmpty(microservice.getAlias())) {
-      if (findValue(microservice.getAlias()) == null) {
-        register(microservice.getAlias(), microserviceMeta);
-      }
-    }
-
-    return microserviceMeta;
-  }
-
-  public MicroserviceMeta getOrCreateMicroserviceMeta(String microserviceName) 
{
-    MicroserviceMeta microserviceMeta = findValue(microserviceName);
-    if (microserviceMeta == null) {
-      synchronized (lock) {
-        microserviceMeta = findValue(microserviceName);
-        if (microserviceMeta == null) {
-          microserviceMeta = new MicroserviceMeta(microserviceName);
-          register(microserviceName, microserviceMeta);
-        }
-      }
-    }
-
-    return microserviceMeta;
-  }
-}
diff --git 
a/core/src/main/java/org/apache/servicecomb/core/definition/loader/SchemaListenerManager.java
 
b/core/src/main/java/org/apache/servicecomb/core/definition/loader/SchemaListenerManager.java
index 65e9bd4be..2ddebc7c9 100644
--- 
a/core/src/main/java/org/apache/servicecomb/core/definition/loader/SchemaListenerManager.java
+++ 
b/core/src/main/java/org/apache/servicecomb/core/definition/loader/SchemaListenerManager.java
@@ -21,11 +21,12 @@
 import java.util.Collection;
 import java.util.List;
 
-import javax.inject.Inject;
-
+import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.definition.MicroserviceMeta;
-import org.apache.servicecomb.core.definition.MicroserviceMetaManager;
 import org.apache.servicecomb.core.definition.SchemaMeta;
+import org.apache.servicecomb.serviceregistry.RegistryUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -34,32 +35,28 @@
  */
 @Component
 public class SchemaListenerManager {
+
+  private static final Logger LOGGER = 
LoggerFactory.getLogger(SchemaListenerManager.class);
+
   @Autowired(required = false)
   private List<SchemaListener> schemaListenerList = new ArrayList<>();
 
-  @Inject
-  private MicroserviceMetaManager microserviceMetaManager;
-
   public void setSchemaListenerList(List<SchemaListener> schemaListenerList) {
     this.schemaListenerList = schemaListenerList;
   }
 
-  public void setMicroserviceMetaManager(MicroserviceMetaManager 
microserviceMetaManager) {
-    this.microserviceMetaManager = microserviceMetaManager;
-  }
-
   public void notifySchemaListener(MicroserviceMeta... microserviceMetas) {
     List<SchemaMeta> schemaMetaList = new ArrayList<>();
     for (MicroserviceMeta microserviceMeta : microserviceMetas) {
       schemaMetaList.addAll(microserviceMeta.getSchemaMetas());
     }
-
     notifySchemaListener(schemaMetaList.toArray(new 
SchemaMeta[schemaMetaList.size()]));
   }
 
   public void notifySchemaListener() {
-    Collection<MicroserviceMeta> microserviceMetas = 
microserviceMetaManager.values();
-    notifySchemaListener(microserviceMetas.toArray(new 
MicroserviceMeta[microserviceMetas.size()]));
+    //only one instance
+    MicroserviceMeta microserviceMeta = 
SCBEngine.getInstance().getProducerMicroserviceMeta();
+    notifySchemaListener(microserviceMeta);
   }
 
   public void notifySchemaListener(SchemaMeta... schemaMetas) {
@@ -74,12 +71,22 @@ public void notifySchemaListener(List<SchemaMeta> 
schemaMetaList) {
   }
 
   public SchemaMeta ensureFindSchemaMeta(String microserviceName, String 
schemaId) {
-    MicroserviceMeta microserviceMeta = 
microserviceMetaManager.ensureFindValue(microserviceName);
+    if 
(!RegistryUtils.getMicroservice().getServiceName().equals(microserviceName)) {
+      throw new Error(String.format("miroserviceName : %s is different from 
the default microserviceName %s",
+          microserviceName,
+          RegistryUtils.getMicroservice().getServiceName()));
+    }
+    MicroserviceMeta microserviceMeta = 
SCBEngine.getInstance().getProducerMicroserviceMeta();
     return microserviceMeta.ensureFindSchemaMeta(schemaId);
   }
 
   public Collection<SchemaMeta> getAllSchemaMeta(String microserviceName) {
-    MicroserviceMeta microserviceMeta = 
microserviceMetaManager.ensureFindValue(microserviceName);
+    if 
(!RegistryUtils.getMicroservice().getServiceName().equals(microserviceName)) {
+      throw new Error(String.format("miroserviceName : %s is different from 
the default microserviceName %s",
+          microserviceName,
+          RegistryUtils.getMicroservice().getServiceName()));
+    }
+    MicroserviceMeta microserviceMeta = 
SCBEngine.getInstance().getProducerMicroserviceMeta();
     return microserviceMeta.getSchemaMetas();
   }
 }
diff --git 
a/core/src/main/java/org/apache/servicecomb/core/definition/loader/SchemaLoader.java
 
b/core/src/main/java/org/apache/servicecomb/core/definition/loader/SchemaLoader.java
index aa612c324..d4bca108b 100644
--- 
a/core/src/main/java/org/apache/servicecomb/core/definition/loader/SchemaLoader.java
+++ 
b/core/src/main/java/org/apache/servicecomb/core/definition/loader/SchemaLoader.java
@@ -19,13 +19,11 @@
 
 import java.util.List;
 
-import javax.inject.Inject;
-
 import org.apache.commons.io.FilenameUtils;
 import org.apache.commons.io.IOUtils;
 import org.apache.servicecomb.core.Handler;
+import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.definition.MicroserviceMeta;
-import org.apache.servicecomb.core.definition.MicroserviceMetaManager;
 import org.apache.servicecomb.core.definition.SchemaMeta;
 import org.apache.servicecomb.core.definition.SchemaUtils;
 import org.apache.servicecomb.core.handler.ConsumerHandlerManager;
@@ -48,13 +46,6 @@
 public class SchemaLoader {
   private static final Logger LOGGER = 
LoggerFactory.getLogger(SchemaLoader.class);
 
-  @Inject
-  protected MicroserviceMetaManager microserviceMetaManager;
-
-  public void setMicroserviceMetaManager(MicroserviceMetaManager 
microserviceMetaManager) {
-    this.microserviceMetaManager = microserviceMetaManager;
-  }
-
   /*
    * resource的路径格式,至少是以这个形式结尾:schemaId.yaml
    */
@@ -82,8 +73,13 @@ public SchemaMeta registerSchema(String microserviceName, 
String schemaId, Strin
 
   public SchemaMeta registerSchema(String microserviceName, String schemaId,
       Swagger swagger) {
-    MicroserviceMeta microserviceMeta = 
microserviceMetaManager.getOrCreateMicroserviceMeta(microserviceName);
-
+    //check whether the microserviceName is right
+    if 
(!RegistryUtils.getMicroservice().getServiceName().equals(microserviceName)) {
+      throw new Error(String.format("miroserviceName : %s is different from 
the default microserviceName: %s",
+          microserviceName,
+          RegistryUtils.getMicroservice().getServiceName()));
+    }
+    MicroserviceMeta microserviceMeta = 
SCBEngine.getInstance().getProducerMicroserviceMeta();
     return registerSchema(microserviceMeta, schemaId, swagger);
   }
 
diff --git 
a/core/src/main/java/org/apache/servicecomb/core/definition/schema/AbstractSchemaFactory.java
 
b/core/src/main/java/org/apache/servicecomb/core/definition/schema/AbstractSchemaFactory.java
index 9d62c52b7..0db01dc81 100644
--- 
a/core/src/main/java/org/apache/servicecomb/core/definition/schema/AbstractSchemaFactory.java
+++ 
b/core/src/main/java/org/apache/servicecomb/core/definition/schema/AbstractSchemaFactory.java
@@ -22,7 +22,6 @@
 import javax.inject.Inject;
 
 import org.apache.servicecomb.core.definition.MicroserviceMeta;
-import org.apache.servicecomb.core.definition.MicroserviceMetaManager;
 import org.apache.servicecomb.core.definition.SchemaMeta;
 import org.apache.servicecomb.core.definition.SchemaUtils;
 import org.apache.servicecomb.core.definition.loader.SchemaLoader;
@@ -40,8 +39,6 @@
  * 在producer场景中,如果本地没有契约,需要根据实现类动态生成契约
  */
 public abstract class AbstractSchemaFactory<CONTEXT extends SchemaContext> {
-  @Inject
-  protected MicroserviceMetaManager microserviceMetaManager;
 
   protected SchemaLoader schemaLoader;
 
@@ -53,10 +50,6 @@ public void setSchemaLoader(SchemaLoader schemaLoader) {
     this.schemaLoader = schemaLoader;
   }
 
-  public void setMicroserviceMetaManager(MicroserviceMetaManager 
microserviceMetaManager) {
-    this.microserviceMetaManager = microserviceMetaManager;
-  }
-
   // 因为aop的存在,schemaInstance的class不一定等于schemaClass
   protected SchemaMeta getOrCreateSchema(CONTEXT context) {
     MicroserviceMeta microserviceMeta = context.getMicroserviceMeta();
diff --git 
a/core/src/main/java/org/apache/servicecomb/core/definition/schema/ProducerSchemaFactory.java
 
b/core/src/main/java/org/apache/servicecomb/core/definition/schema/ProducerSchemaFactory.java
index 87e7cb2d8..77b005da3 100644
--- 
a/core/src/main/java/org/apache/servicecomb/core/definition/schema/ProducerSchemaFactory.java
+++ 
b/core/src/main/java/org/apache/servicecomb/core/definition/schema/ProducerSchemaFactory.java
@@ -29,6 +29,7 @@
 import javax.inject.Inject;
 
 import org.apache.servicecomb.core.Const;
+import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.definition.MicroserviceMeta;
 import org.apache.servicecomb.core.definition.OperationMeta;
 import org.apache.servicecomb.core.definition.SchemaMeta;
@@ -77,7 +78,13 @@ public void setSwaggerEnv(SwaggerEnvironment swaggerEnv) {
   public SchemaMeta getOrCreateProducerSchema(String microserviceName, String 
schemaId,
       Class<?> producerClass,
       Object producerInstance) {
-    MicroserviceMeta microserviceMeta = 
microserviceMetaManager.getOrCreateMicroserviceMeta(microserviceName);
+    if 
(!RegistryUtils.getMicroservice().getServiceName().equals(microserviceName)) {
+      throw new Error(String.format("miroserviceName : %s is different from 
the default microserviceName :%s",
+          microserviceName,
+          RegistryUtils.getMicroservice().getServiceName()));
+    }
+
+    MicroserviceMeta microserviceMeta = 
SCBEngine.getInstance().getProducerMicroserviceMeta();
 
     ProducerSchemaContext context = new ProducerSchemaContext();
     context.setMicroserviceMeta(microserviceMeta);
diff --git 
a/core/src/main/java/org/apache/servicecomb/core/provider/consumer/AbstractConsumerProvider.java
 
b/core/src/main/java/org/apache/servicecomb/core/provider/consumer/AbstractConsumerProvider.java
index 1493d5923..2c7b2ffc3 100644
--- 
a/core/src/main/java/org/apache/servicecomb/core/provider/consumer/AbstractConsumerProvider.java
+++ 
b/core/src/main/java/org/apache/servicecomb/core/provider/consumer/AbstractConsumerProvider.java
@@ -17,14 +17,9 @@
 
 package org.apache.servicecomb.core.provider.consumer;
 
-import javax.inject.Inject;
-
 import org.apache.servicecomb.core.ConsumerProvider;
-import org.apache.servicecomb.core.definition.MicroserviceMetaManager;
 
 public abstract class AbstractConsumerProvider implements ConsumerProvider {
-  @Inject
-  protected MicroserviceMetaManager microserviceMetaManager;
 
   @Override
   public void init() throws Exception {
diff --git 
a/core/src/main/java/org/apache/servicecomb/core/provider/producer/ProducerProviderManager.java
 
b/core/src/main/java/org/apache/servicecomb/core/provider/producer/ProducerProviderManager.java
index b9b6b415c..12a555b1a 100644
--- 
a/core/src/main/java/org/apache/servicecomb/core/provider/producer/ProducerProviderManager.java
+++ 
b/core/src/main/java/org/apache/servicecomb/core/provider/producer/ProducerProviderManager.java
@@ -22,13 +22,11 @@
 import java.util.List;
 import java.util.concurrent.ExecutorService;
 
-import javax.inject.Inject;
-
 import org.apache.commons.io.IOUtils;
 import org.apache.servicecomb.core.BootListener;
 import org.apache.servicecomb.core.ProducerProvider;
+import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.definition.MicroserviceMeta;
-import org.apache.servicecomb.core.definition.MicroserviceMetaManager;
 import org.apache.servicecomb.core.definition.OperationMeta;
 import org.apache.servicecomb.core.definition.SchemaMeta;
 import org.apache.servicecomb.core.definition.SchemaUtils;
@@ -46,18 +44,14 @@
   @Autowired(required = false)
   private List<ProducerProvider> producerProviderList = 
Collections.emptyList();
 
-  @Inject
-  private MicroserviceMetaManager microserviceMetaManager;
-
   private MicroserviceMeta microserviceMeta;
 
   public void init() throws Exception {
     for (ProducerProvider provider : producerProviderList) {
       provider.init();
     }
-
     Microservice microservice = RegistryUtils.getMicroservice();
-    microserviceMeta = 
microserviceMetaManager.getOrCreateMicroserviceMeta(microservice);
+    microserviceMeta = SCBEngine.getInstance().getProducerMicroserviceMeta();
     for (SchemaMeta schemaMeta : microserviceMeta.getSchemaMetas()) {
       String content = SchemaUtils.swaggerToString(schemaMeta.getSwagger());
       microservice.addSchema(schemaMeta.getSchemaId(), content);
diff --git 
a/core/src/main/java/org/apache/servicecomb/core/unittest/UnitTestMeta.java 
b/core/src/main/java/org/apache/servicecomb/core/unittest/UnitTestMeta.java
index 8d9c5b543..920101a16 100644
--- a/core/src/main/java/org/apache/servicecomb/core/unittest/UnitTestMeta.java
+++ b/core/src/main/java/org/apache/servicecomb/core/unittest/UnitTestMeta.java
@@ -22,8 +22,8 @@
 
 import org.apache.servicecomb.core.CseContext;
 import org.apache.servicecomb.core.Handler;
+import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.definition.MicroserviceMeta;
-import org.apache.servicecomb.core.definition.MicroserviceMetaManager;
 import 
org.apache.servicecomb.core.definition.PrivateMicroserviceVersionMetaFactory;
 import org.apache.servicecomb.core.definition.SchemaMeta;
 import org.apache.servicecomb.core.definition.loader.SchemaListenerManager;
@@ -47,15 +47,15 @@
 import org.mockito.Mockito;
 import org.springframework.context.ApplicationContext;
 
-import io.swagger.models.Swagger;
 import mockit.Mock;
 import mockit.MockUp;
 
+import io.swagger.models.Swagger;
+
 /**
  * when SCBEngine finished, UnitTestMeta will be deleted
  */
 public class UnitTestMeta {
-  private MicroserviceMetaManager microserviceMetaManager = new 
MicroserviceMetaManager();
 
   private SchemaListenerManager schemaListenerManager = new 
SchemaListenerManager();
 
@@ -69,6 +69,8 @@ public ConsumerProviderManager getConsumerProviderManager() {
 
   private SchemaLoader schemaLoader = new SchemaLoader();
 
+  private MicroserviceMeta microserviceMeta;
+
   private ServiceRegistry serviceRegistry;
 
   public ServiceRegistry getServiceRegistry() {
@@ -85,13 +87,12 @@ public void init() {
     serviceRegistry.init();
     serviceRegistry.getAppManager().setMicroserviceVersionFactory(new 
PrivateMicroserviceVersionMetaFactory());
     RegistryUtils.setServiceRegistry(serviceRegistry);
-
-    schemaLoader.setMicroserviceMetaManager(microserviceMetaManager);
-
+    microserviceMeta = new 
MicroserviceMeta(RegistryUtils.getMicroservice().getServiceName());
+    SCBEngine.getInstance().setProducerMicroserviceMeta(microserviceMeta);
     consumerProviderManager = new ConsumerProviderManager();
 
     consumerSchemaFactory = new ConsumerSchemaFactory();
-    consumerSchemaFactory.setMicroserviceMetaManager(microserviceMetaManager);
+
     consumerSchemaFactory.setSchemaLoader(schemaLoader);
 
     
consumerProviderManager.setAppManager(RegistryUtils.getServiceRegistry().getAppManager());
@@ -128,18 +129,13 @@ public UnitTestMeta() {
     init();
   }
 
-
-  public MicroserviceMetaManager getMicroserviceMetaManager() {
-    return microserviceMetaManager;
-  }
-
   public SchemaMeta getOrCreateSchemaMeta(Class<?> impl) {
     return getOrCreateSchemaMeta("app", "test", impl.getName(), impl);
   }
 
   public SchemaMeta getOrCreateSchemaMeta(String appId, String 
microserviceName, String schemaId, Class<?> impl) {
     String longName = appId + ":" + microserviceName;
-    MicroserviceMeta microserviceMeta = 
microserviceMetaManager.getOrCreateMicroserviceMeta(longName);
+    MicroserviceMeta microserviceMeta = 
SCBEngine.getInstance().getProducerMicroserviceMeta();
     SchemaMeta schemaMeta = microserviceMeta.findSchemaMeta(schemaId);
     if (schemaMeta != null) {
       return schemaMeta;
diff --git a/core/src/test/java/org/apache/servicecomb/core/TestDefinition.java 
b/core/src/test/java/org/apache/servicecomb/core/TestDefinition.java
index 9f91589a8..3416048ee 100644
--- a/core/src/test/java/org/apache/servicecomb/core/TestDefinition.java
+++ b/core/src/test/java/org/apache/servicecomb/core/TestDefinition.java
@@ -19,14 +19,9 @@
 
 import org.apache.servicecomb.core.definition.CommonService;
 import org.apache.servicecomb.core.definition.MicroserviceMeta;
-import org.apache.servicecomb.core.definition.MicroserviceMetaManager;
-import org.apache.servicecomb.swagger.generator.core.utils.ClassUtils;
 import org.junit.Assert;
 import org.junit.Test;
 
-import io.swagger.models.Info;
-import io.swagger.models.Swagger;
-
 public class TestDefinition {
   @Test
   public void testCommonService() {
@@ -68,23 +63,4 @@ public void testMicroServiceMeta() {
       Assert.assertNotNull(e);
     }
   }
-
-  @Test
-  public void testMicroserviceMetaManager() throws Exception {
-    MicroserviceMetaManager microserviceMetaManager = new 
MicroserviceMetaManager();
-    microserviceMetaManager.getOrCreateMicroserviceMeta("app:testname");
-
-    Assert.assertEquals("microservice meta manager", 
microserviceMetaManager.getName());
-    Assert.assertEquals("Not allow register repeat data, name=%s, key=%s",
-        microserviceMetaManager.getRegisterErrorFmt());
-    Assert.assertEquals(0, 
microserviceMetaManager.getAllSchemaMeta("app:testname").size());
-
-    Swagger oSwagger = new Swagger();
-    Info oInfo = new Info();
-    oInfo.setVendorExtension("x-java-interface", "java.lang.String");
-    oSwagger.setInfo(oInfo);
-    Assert.assertEquals("java.lang.String",
-        
(ClassUtils.getInterfaceName(oSwagger.getInfo().getVendorExtensions())));
-    oInfo.setVendorExtension("x-java-class", "java.lang.String");
-  }
 }
diff --git 
a/core/src/test/java/org/apache/servicecomb/core/definition/TestOperationMeta.java
 
b/core/src/test/java/org/apache/servicecomb/core/definition/TestOperationMeta.java
index b4e15fad3..efd56eb4a 100644
--- 
a/core/src/test/java/org/apache/servicecomb/core/definition/TestOperationMeta.java
+++ 
b/core/src/test/java/org/apache/servicecomb/core/definition/TestOperationMeta.java
@@ -51,9 +51,9 @@ public void testOperationMeta() {
     Assert.assertEquals(schemaMeta, operationMeta.getSchemaMeta());
     Assert.assertEquals(Impl.class.getName() + ".test",
         operationMeta.getSchemaQualifiedName());
-    Assert.assertEquals("app:test." + Impl.class.getName() + ".test",
+    Assert.assertEquals("perfClient." + Impl.class.getName() + ".test",
         operationMeta.getMicroserviceQualifiedName());
-    Assert.assertEquals("app:test", operationMeta.getMicroserviceName());
+    Assert.assertEquals("perfClient", operationMeta.getMicroserviceName());
     Assert.assertEquals("test", operationMeta.getOperationId());
     Assert.assertEquals("x", operationMeta.getParamName(0));
 
diff --git 
a/core/src/test/java/org/apache/servicecomb/core/definition/loader/TestDynamicSchemaLoader.java
 
b/core/src/test/java/org/apache/servicecomb/core/definition/loader/TestDynamicSchemaLoader.java
index c7f0b4a15..74e47e830 100644
--- 
a/core/src/test/java/org/apache/servicecomb/core/definition/loader/TestDynamicSchemaLoader.java
+++ 
b/core/src/test/java/org/apache/servicecomb/core/definition/loader/TestDynamicSchemaLoader.java
@@ -20,7 +20,7 @@
 import java.util.Collections;
 
 import org.apache.servicecomb.core.CseContext;
-import org.apache.servicecomb.core.definition.MicroserviceMetaManager;
+import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.definition.SchemaMeta;
 import org.apache.servicecomb.core.unittest.UnitTestMeta;
 import org.apache.servicecomb.serviceregistry.RegistryUtils;
@@ -35,7 +35,6 @@
 import org.junit.Test;
 
 public class TestDynamicSchemaLoader {
-  private static MicroserviceMetaManager microserviceMetaManager = new 
MicroserviceMetaManager();
 
   private static SchemaLoader loader = new SchemaLoader();
 
@@ -44,7 +43,6 @@
   @BeforeClass
   public static void init() {
     new UnitTestMeta();
-    loader.setMicroserviceMetaManager(microserviceMetaManager);
 
     SchemaListenerManager schemaListenerManager = new SchemaListenerManager();
     schemaListenerManager.setSchemaListenerList(Collections.emptyList());
@@ -69,16 +67,21 @@ public static void teardown() {
   @Test
   public void testRegisterSchemas() {
     
DynamicSchemaLoader.INSTANCE.registerSchemas("classpath*:test/test/schema.yaml");
-    SchemaMeta schemaMeta = 
microserviceMetaManager.ensureFindSchemaMeta("perfClient", "schema");
+    SchemaMeta schemaMeta = 
SCBEngine.getInstance().getProducerMicroserviceMeta().ensureFindSchemaMeta("schema");
     Assert.assertEquals("cse.gen.app.perfClient.schema", 
schemaMeta.getPackageName());
   }
 
   @SuppressWarnings("deprecation")
   @Test
   public void testRegisterShemasAcrossApp() {
-    DynamicSchemaLoader.INSTANCE.registerSchemas("CSE:as", 
"classpath*:test/test/schema.yaml");
-    SchemaMeta schemaMeta = 
microserviceMetaManager.ensureFindSchemaMeta("CSE:as", "schema");
-    Assert.assertEquals("cse.gen.CSE.as.schema", schemaMeta.getPackageName());
+    //we can not register repeat data
+    init();
+    //as we can not set microserviceName any more, hence we should use the 
default name
+    DynamicSchemaLoader.INSTANCE
+        .registerSchemas(RegistryUtils.getMicroservice().getServiceName(), 
"classpath*:test/test/schema.yaml");
+    SchemaMeta schemaMeta =
+        
SCBEngine.getInstance().getProducerMicroserviceMeta().ensureFindSchemaMeta("schema");
+    Assert.assertEquals("cse.gen.app.perfClient.schema", 
schemaMeta.getPackageName());
   }
 
   @Test
diff --git 
a/core/src/test/java/org/apache/servicecomb/core/definition/loader/TestSchemaListenerManager.java
 
b/core/src/test/java/org/apache/servicecomb/core/definition/loader/TestSchemaListenerManager.java
index f32adff94..445cf1af7 100644
--- 
a/core/src/test/java/org/apache/servicecomb/core/definition/loader/TestSchemaListenerManager.java
+++ 
b/core/src/test/java/org/apache/servicecomb/core/definition/loader/TestSchemaListenerManager.java
@@ -19,7 +19,6 @@
 
 import java.util.Arrays;
 
-import org.apache.servicecomb.core.definition.MicroserviceMetaManager;
 import org.apache.servicecomb.core.definition.SchemaMeta;
 import org.junit.Assert;
 import org.junit.Before;
@@ -47,7 +46,6 @@ public void onSchemaLoaded(SchemaMeta... schemaMetas) {
 
     SchemaListenerManager mgr = new SchemaListenerManager();
     mgr.setSchemaListenerList(Arrays.asList(listener));
-    mgr.setMicroserviceMetaManager(new MicroserviceMetaManager());
 
     mgr.notifySchemaListener(schemaMeta);
   }
diff --git 
a/core/src/test/java/org/apache/servicecomb/core/definition/schema/TestProducerSchemaFactory.java
 
b/core/src/test/java/org/apache/servicecomb/core/definition/schema/TestProducerSchemaFactory.java
index 97f7ddbf3..1abf3b7c0 100644
--- 
a/core/src/test/java/org/apache/servicecomb/core/definition/schema/TestProducerSchemaFactory.java
+++ 
b/core/src/test/java/org/apache/servicecomb/core/definition/schema/TestProducerSchemaFactory.java
@@ -24,7 +24,6 @@
 import org.apache.servicecomb.core.Const;
 import org.apache.servicecomb.core.Endpoint;
 import org.apache.servicecomb.core.Invocation;
-import org.apache.servicecomb.core.definition.MicroserviceMetaManager;
 import org.apache.servicecomb.core.definition.OperationMeta;
 import org.apache.servicecomb.core.definition.SchemaMeta;
 import org.apache.servicecomb.core.definition.loader.SchemaLoader;
@@ -77,12 +76,10 @@ public static void init() {
     ProducerArgumentsMapperFactory producerArgsMapperFactory = new 
ProducerArgumentsMapperFactory();
     producerArgsMapperFactory.setConverterMgr(converterMgr);
 
-    MicroserviceMetaManager microserviceMetaManager = new 
MicroserviceMetaManager();
     SchemaLoader schemaLoader = new SchemaLoader();
     CompositeSwaggerGeneratorContext compositeSwaggerGeneratorContext = new 
CompositeSwaggerGeneratorContext();
 
     producerSchemaFactory.setSwaggerEnv(swaggerEnv);
-    ReflectUtils.setField(producerSchemaFactory, "microserviceMetaManager", 
microserviceMetaManager);
     ReflectUtils.setField(producerSchemaFactory, "schemaLoader", schemaLoader);
     ReflectUtils.setField(producerSchemaFactory,
         "compositeSwaggerGeneratorContext",
@@ -111,8 +108,8 @@ public static void teardown() {
 
   @Test
   public void testGetOrCreateProducer() throws Exception {
-    SchemaMeta schemaMeta = 
producerSchemaFactory.getOrCreateProducerSchema("app:ms",
-        "schema",
+    String serviceName = RegistryUtils.getMicroservice().getServiceName();
+    SchemaMeta schemaMeta = 
producerSchemaFactory.getOrCreateProducerSchema(serviceName, "schema",
         TestProducerSchemaFactoryImpl.class,
         new TestProducerSchemaFactoryImpl());
     Swagger swagger = schemaMeta.getSwagger();
@@ -121,8 +118,8 @@ public void testGetOrCreateProducer() throws Exception {
     Assert.assertEquals("add", operationMeta.getOperationId());
 
     SwaggerProducerOperation producerOperation = 
operationMeta.getExtData(Const.PRODUCER_OPERATION);
-
-    Object addBody = 
Class.forName("cse.gen.app.ms.schema.addBody").newInstance();
+    //we can not set microserviceName any more,use the default name
+    Object addBody = 
Class.forName("cse.gen.app.perfClient.schema.addBody").newInstance();
     ReflectUtils.setField(addBody, "x", 1);
     ReflectUtils.setField(addBody, "y", 2);
     Invocation invocation = new Invocation((Endpoint) null, operationMeta, new 
Object[] {addBody}) {
@@ -151,9 +148,8 @@ public String getInvocationQualifiedName() {
   public void testGetOrCreateProducerWithPrefix() throws Exception {
     
ArchaiusUtils.setProperty(org.apache.servicecomb.serviceregistry.api.Const.REGISTER_URL_PREFIX,
 "true");
     
System.setProperty(org.apache.servicecomb.serviceregistry.api.Const.URL_PREFIX, 
"/pojo/test");
-
-    SchemaMeta schemaMeta = 
producerSchemaFactory.getOrCreateProducerSchema("app:ms",
-        "schema2",
+    String serviceName = RegistryUtils.getMicroservice().getServiceName();
+    SchemaMeta schemaMeta = 
producerSchemaFactory.getOrCreateProducerSchema(serviceName, "schema2",
         TestProducerSchemaFactoryImpl.class,
         new TestProducerSchemaFactoryImpl());
     OperationMeta operationMeta = schemaMeta.ensureFindOperation("add");
@@ -167,8 +163,8 @@ public void testGetOrCreateProducerWithPrefix() throws 
Exception {
 
   @Test
   public void testCompletableFuture() {
-    SchemaMeta schemaMeta = 
producerSchemaFactory.getOrCreateProducerSchema("app:ms",
-        "schema3",
+    String serviceName = RegistryUtils.getMicroservice().getServiceName();
+    SchemaMeta schemaMeta = 
producerSchemaFactory.getOrCreateProducerSchema(serviceName, "schema3",
         TestProducerSchemaFactoryImpl.class,
         new TestProducerSchemaFactoryImpl());
     OperationMeta operationMeta = schemaMeta.ensureFindOperation("async");
diff --git 
a/core/src/test/java/org/apache/servicecomb/core/provider/producer/TestProducerProviderManager.java
 
b/core/src/test/java/org/apache/servicecomb/core/provider/producer/TestProducerProviderManager.java
index 0809f93fe..943183a0f 100644
--- 
a/core/src/test/java/org/apache/servicecomb/core/provider/producer/TestProducerProviderManager.java
+++ 
b/core/src/test/java/org/apache/servicecomb/core/provider/producer/TestProducerProviderManager.java
@@ -26,7 +26,6 @@
 import org.apache.servicecomb.core.BootListener.BootEvent;
 import org.apache.servicecomb.core.BootListener.EventType;
 import org.apache.servicecomb.core.definition.MicroserviceMeta;
-import org.apache.servicecomb.core.definition.MicroserviceMetaManager;
 import org.apache.servicecomb.core.definition.OperationMeta;
 import org.apache.servicecomb.core.executor.FixedThreadExecutor;
 import org.apache.servicecomb.foundation.test.scaffolding.log.LogCollector;
@@ -42,9 +41,8 @@
 
 public class TestProducerProviderManager {
   @Test
-  public void allowedNoProvider(@Mocked MicroserviceMetaManager 
microserviceMetaManager) {
+  public void allowedNoProvider() {
     AnnotationConfigApplicationContext context = new 
AnnotationConfigApplicationContext();
-    
context.getBeanFactory().registerSingleton(microserviceMetaManager.getClass().getName(),
 microserviceMetaManager);
     context.register(ProducerProviderManager.class);
     // must not throw exception
     context.refresh();
diff --git 
a/demo/demo-crossapp/crossapp-client/src/main/java/org/apache/servicecomb/demo/crossapp/CrossappBootListener.java
 
b/demo/demo-crossapp/crossapp-client/src/main/java/org/apache/servicecomb/demo/crossapp/CrossappBootListener.java
index 491a5357f..f462204c4 100644
--- 
a/demo/demo-crossapp/crossapp-client/src/main/java/org/apache/servicecomb/demo/crossapp/CrossappBootListener.java
+++ 
b/demo/demo-crossapp/crossapp-client/src/main/java/org/apache/servicecomb/demo/crossapp/CrossappBootListener.java
@@ -18,6 +18,7 @@
 package org.apache.servicecomb.demo.crossapp;
 
 import org.apache.servicecomb.core.BootListener;
+import org.apache.servicecomb.serviceregistry.RegistryUtils;
 import org.springframework.stereotype.Component;
 
 @Component
@@ -27,8 +28,12 @@
   public void onBootEvent(BootEvent event) {
     if (EventType.BEFORE_CONSUMER_PROVIDER.equals(event.getEventType())) {
       // 动态注册schemas目录下面的契约到当前服务
-      
org.apache.servicecomb.core.definition.loader.DynamicSchemaLoader.INSTANCE.registerSchemas("appServer:appService",
-          "classpath*:schemas/*.yaml");
+
+      
org.apache.servicecomb.core.definition.loader.DynamicSchemaLoader.INSTANCE
+          .registerSchemas(RegistryUtils.getMicroservice().getServiceName(),
+              "classpath*:schemas/*.yaml");
     }
+
+
   }
 }
diff --git 
a/demo/demo-springmvc/springmvc-server/src/main/java/org/apache/servicecomb/demo/springmvc/server/ProducerTestsAfterBootup.java
 
b/demo/demo-springmvc/springmvc-server/src/main/java/org/apache/servicecomb/demo/springmvc/server/ProducerTestsAfterBootup.java
index 1c12b407f..bd97b2eac 100644
--- 
a/demo/demo-springmvc/springmvc-server/src/main/java/org/apache/servicecomb/demo/springmvc/server/ProducerTestsAfterBootup.java
+++ 
b/demo/demo-springmvc/springmvc-server/src/main/java/org/apache/servicecomb/demo/springmvc/server/ProducerTestsAfterBootup.java
@@ -47,20 +47,22 @@
 
   public void testSchemaNotChange() {
     LOGGER.info("ProducerTestsAfterBootup testing start");
+    //we can not set microserviceName any more
+    String serviceName = RegistryUtils.getMicroservice().getServiceName();
     SchemaMeta meta =
-        factory.getOrCreateProducerSchema("customer-service",
-            "test1",
+        factory.getOrCreateProducerSchema(serviceName, "test1",
             CodeFirstSpringmvcForSchema.class,
             new CodeFirstSpringmvcForSchema());
     String codeFirst = getSwaggerContent(meta.getSwagger());
-    
TestMgr.check("07a48acef4cc1a7f2387d695923c49e98951a974e4f51cf1356d6878db48888f",
+    
TestMgr.check("1453e7ddb60c5383d13ea367840be87d2238c99a4dad73712ef1773d5814f8fd",
         RegistryUtils.calcSchemaSummary(codeFirst));
-    TestMgr.check(codeFirst.length(), 899);
+    TestMgr.check(codeFirst.length(), 892);
   }
 
   public void testRegisterPath() {
     TestMgr.check(RegistryUtils.getMicroservice().getPaths().size(), 10);
   }
+
   private String getSwaggerContent(Swagger swagger) {
     try {
       return writer.writeValueAsString(swagger);
diff --git 
a/dynamic-config/config-cc/src/main/java/org/apache/servicecomb/config/client/ConfigCenterClient.java
 
b/dynamic-config/config-cc/src/main/java/org/apache/servicecomb/config/client/ConfigCenterClient.java
index 09d26c484..3c0a19927 100644
--- 
a/dynamic-config/config-cc/src/main/java/org/apache/servicecomb/config/client/ConfigCenterClient.java
+++ 
b/dynamic-config/config-cc/src/main/java/org/apache/servicecomb/config/client/ConfigCenterClient.java
@@ -363,6 +363,10 @@ public void refreshConfig(String configcenter, boolean 
wait) {
         LOGGER.error("encode failed. Error message: {}", e.getMessage());
         encodeServiceName = StringUtils.deleteWhitespace(serviceName);
       }
+      //just log in the debug level
+      if (LOGGER.isDebugEnabled()) {
+        LOGGER.debug("Updating remote config...");
+      }
       String path = uriConst.ITEMS + "?dimensionsInfo=" + encodeServiceName + 
"&revision="
           + ParseConfigUtils.getInstance().getCurrentVersionInfo();
       clientMgr.findThreadBindClientPool().runOnContext(client -> {
@@ -371,15 +375,18 @@ public void refreshConfig(String configcenter, boolean 
wait) {
           if (rsp.statusCode() == HttpResponseStatus.OK.code()) {
             rsp.bodyHandler(buf -> {
               try {
+                String oldRevision = 
ParseConfigUtils.getInstance().getCurrentVersionInfo();
                 parseConfigUtils
                     
.refreshConfigItems(JsonUtils.OBJ_MAPPER.readValue(buf.toString(),
                         new TypeReference<LinkedHashMap<String, Map<String, 
String>>>() {
                         }));
                 EventManager.post(new ConnSuccEvent());
+                LOGGER.info("Updating remote config is done.,revision has 
changed from {} to {}", oldRevision,
+                    ParseConfigUtils.getInstance().getCurrentVersionInfo());
               } catch (IOException e) {
                 EventManager.post(new ConnFailEvent(
-                    "config refresh result parse fail " + e.getMessage()));
-                LOGGER.error("Config refresh from {} failed. Error message is 
[{}].",
+                    "config update result parse fail " + e.getMessage()));
+                LOGGER.error("Config update from {} failed. Error message is 
[{}].",
                     configcenter,
                     e.getMessage());
               }
@@ -388,6 +395,10 @@ public void refreshConfig(String configcenter, boolean 
wait) {
           } else if (rsp.statusCode() == 
HttpResponseStatus.NOT_MODIFIED.code()) {
             //nothing changed
             EventManager.post(new ConnSuccEvent());
+            if (LOGGER.isDebugEnabled()) {
+              LOGGER.debug("Updating remote config is done. the revision {} 
has no change",
+                  ParseConfigUtils.getInstance().getCurrentVersionInfo());
+            }
             latch.countDown();
           } else {
             rsp.bodyHandler(buf -> {
@@ -395,7 +406,7 @@ public void refreshConfig(String configcenter, boolean 
wait) {
               latch.countDown();
             });
             EventManager.post(new ConnFailEvent("fetch config fail"));
-            LOGGER.error("Config refresh from {} failed.", configcenter);
+            LOGGER.error("Config update from {} failed.", configcenter);
           }
         }).setTimeout((BOOTUP_WAIT_TIME - 1) * 1000);
         Map<String, String> headers = new HashMap<>();
@@ -412,7 +423,7 @@ public void refreshConfig(String configcenter, boolean 
wait) {
                 null))));
         request.exceptionHandler(e -> {
           EventManager.post(new ConnFailEvent("fetch config fail"));
-          LOGGER.error("Config refresh from {} failed. Error message is [{}].",
+          LOGGER.error("Config update from {} failed. Error message is [{}].",
               configcenter,
               e.getMessage());
           latch.countDown();
@@ -420,13 +431,11 @@ public void refreshConfig(String configcenter, boolean 
wait) {
         request.end();
       });
       if (wait) {
-        LOGGER.info("Refreshing remote config...");
         try {
           latch.await(BOOTUP_WAIT_TIME, TimeUnit.SECONDS);
         } catch (InterruptedException e) {
           LOGGER.warn(e.getMessage());
         }
-        LOGGER.info("Refreshing remote config is done.");
       }
     }
   }
diff --git 
a/dynamic-config/config-cc/src/main/java/org/apache/servicecomb/config/client/ParseConfigUtils.java
 
b/dynamic-config/config-cc/src/main/java/org/apache/servicecomb/config/client/ParseConfigUtils.java
index 3dd95c8e7..d86bd545d 100644
--- 
a/dynamic-config/config-cc/src/main/java/org/apache/servicecomb/config/client/ParseConfigUtils.java
+++ 
b/dynamic-config/config-cc/src/main/java/org/apache/servicecomb/config/client/ParseConfigUtils.java
@@ -67,7 +67,7 @@ public void initWithUpdateHandler(UpdateHandler 
updateHandler) {
   }
 
   /*
-      as the data is returned, we can block the thread at a short time. 
consider that if the multiple verticle is deployed
+      as the data is returned, we can block the thread at a short time. 
consider that if the multiple verticles were deployed
       and if we use pull mode and push mode at the same time , we must share a 
common lock with all methods which would
       change the config setting
      */
@@ -82,7 +82,6 @@ public void refreshConfigItems(Map<String, Map<String, 
Object>> remoteItems) {
       multiDimensionItems.clear();
       multiDimensionItems.putAll(remoteItems);
       doRefreshItems();
-      LOGGER.debug("refresh config success");
     } finally {
       configLock.unlock();
     }
diff --git 
a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/ThreadPoolMetersInitializer.java
 
b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/ThreadPoolMetersInitializer.java
index 7d9b1f2d5..1637cfba9 100644
--- 
a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/ThreadPoolMetersInitializer.java
+++ 
b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/ThreadPoolMetersInitializer.java
@@ -22,9 +22,8 @@
 import java.util.concurrent.Executor;
 import java.util.concurrent.ThreadPoolExecutor;
 
-import org.apache.servicecomb.core.CseContext;
+import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.definition.MicroserviceMeta;
-import org.apache.servicecomb.core.definition.MicroserviceMetaManager;
 import org.apache.servicecomb.core.definition.OperationMeta;
 import org.apache.servicecomb.core.executor.FixedThreadExecutor;
 import org.apache.servicecomb.foundation.common.utils.BeanUtils;
@@ -71,14 +70,11 @@ public void createThreadPoolMeters() {
 
   protected Map<Executor, Executor> collectionOperationExecutors() {
     Map<Executor, Executor> operationExecutors = new IdentityHashMap<>();
-
-    MicroserviceMetaManager microserviceMetaManager = 
CseContext.getInstance().getMicroserviceMetaManager();
-    for (MicroserviceMeta microserviceMeta : microserviceMetaManager.values()) 
{
-      for (OperationMeta operationMeta : microserviceMeta.getOperations()) {
-        operationExecutors.put(operationMeta.getExecutor(), 
operationMeta.getExecutor());
-      }
+    //only one instance in the values
+    MicroserviceMeta microserviceMeta = 
SCBEngine.getInstance().getProducerMicroserviceMeta();
+    for (OperationMeta operationMeta : microserviceMeta.getOperations()) {
+      operationExecutors.put(operationMeta.getExecutor(), 
operationMeta.getExecutor());
     }
-
     return operationExecutors;
   }
 
diff --git 
a/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestThreadPoolMetersInitializer.java
 
b/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestThreadPoolMetersInitializer.java
index 116e05939..378743de2 100644
--- 
a/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestThreadPoolMetersInitializer.java
+++ 
b/metrics/metrics-core/src/test/java/org/apache/servicecomb/metrics/core/TestThreadPoolMetersInitializer.java
@@ -28,8 +28,8 @@
 import java.util.concurrent.ThreadPoolExecutor;
 
 import org.apache.servicecomb.core.CseContext;
+import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.definition.MicroserviceMeta;
-import org.apache.servicecomb.core.definition.MicroserviceMetaManager;
 import org.apache.servicecomb.core.definition.OperationMeta;
 import org.apache.servicecomb.core.executor.FixedThreadExecutor;
 import org.apache.servicecomb.foundation.common.utils.BeanUtils;
@@ -43,7 +43,6 @@
 import com.netflix.spectator.api.DefaultRegistry;
 import com.netflix.spectator.api.ManualClock;
 import com.netflix.spectator.api.Registry;
-
 import mockit.Expectations;
 import mockit.Mock;
 import mockit.MockUp;
@@ -72,8 +71,6 @@
   @Mocked
   ApplicationContext applicationContext;
 
-  @Mocked
-  MicroserviceMetaManager microserviceMetaManager;
 
   @Mocked
   MicroserviceMeta microserviceMeta;
@@ -89,6 +86,12 @@
 
   @Test
   public void init() {
+    new Expectations(SCBEngine.class) {
+      {
+        SCBEngine.getInstance().getProducerMicroserviceMeta();
+        result = microserviceMeta;
+      }
+    };
     new Expectations(SPIServiceUtils.class) {
       {
         SPIServiceUtils.getTargetService(MetricsInitializer.class, 
DefaultRegistryInitializer.class);
@@ -97,7 +100,6 @@ public void init() {
         result = registry;
       }
     };
-
     Map<String, Executor> beanExecutors = new HashMap<>();
     beanExecutors.put("executor", executor);
     beanExecutors.put("fixedThreadExecutor", fixedThreadExecutor);
@@ -113,10 +115,6 @@ public void init() {
 
     new Expectations(CseContext.getInstance()) {
       {
-        CseContext.getInstance().getMicroserviceMetaManager();
-        result = microserviceMetaManager;
-        microserviceMetaManager.values();
-        result = Arrays.asList(microserviceMeta);
         microserviceMeta.getOperations();
         result = Arrays.asList(operationMetaExecutor, 
operationMetaSameExecutor, operationMetaFixedThreadExecutor);
         operationMetaExecutor.getExecutor();
diff --git 
a/providers/provider-pojo/src/test/java/org/apache/servicecomb/provider/common/MockUtil.java
 
b/providers/provider-pojo/src/test/java/org/apache/servicecomb/provider/common/MockUtil.java
index bea8107ec..d3e46c065 100644
--- 
a/providers/provider-pojo/src/test/java/org/apache/servicecomb/provider/common/MockUtil.java
+++ 
b/providers/provider-pojo/src/test/java/org/apache/servicecomb/provider/common/MockUtil.java
@@ -17,7 +17,6 @@
 
 package org.apache.servicecomb.provider.common;
 
-import org.apache.servicecomb.core.definition.MicroserviceMetaManager;
 import org.apache.servicecomb.foundation.common.utils.BeanUtils;
 import org.mockito.Mockito;
 import org.springframework.context.ApplicationContext;
@@ -26,7 +25,6 @@
 import mockit.MockUp;
 
 public class MockUtil {
-  MicroserviceMetaManager microserviceMetaManager = new 
MicroserviceMetaManager();
 
   private static MockUtil instance = new MockUtil();
 
diff --git 
a/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayServerInvoke.java
 
b/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayServerInvoke.java
index fd82cca14..4878c415d 100644
--- 
a/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayServerInvoke.java
+++ 
b/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayServerInvoke.java
@@ -23,11 +23,10 @@
 import org.apache.servicecomb.codec.protobuf.definition.ProtobufManager;
 import org.apache.servicecomb.codec.protobuf.utils.WrapSchema;
 import org.apache.servicecomb.core.Const;
-import org.apache.servicecomb.core.CseContext;
 import org.apache.servicecomb.core.Endpoint;
 import org.apache.servicecomb.core.Invocation;
+import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.definition.MicroserviceMeta;
-import org.apache.servicecomb.core.definition.MicroserviceMetaManager;
 import org.apache.servicecomb.core.definition.OperationMeta;
 import org.apache.servicecomb.core.definition.SchemaMeta;
 import org.apache.servicecomb.core.invocation.InvocationFactory;
@@ -45,8 +44,6 @@
 public class HighwayServerInvoke {
   private static final Logger LOGGER = 
LoggerFactory.getLogger(HighwayServerInvoke.class);
 
-  private MicroserviceMetaManager microserviceMetaManager = 
CseContext.getInstance().getMicroserviceMetaManager();
-
   private ProtobufFeature protobufFeature;
 
   private RequestHeader header;
@@ -74,10 +71,6 @@ public HighwayServerInvoke(Endpoint endpoint, 
ProtobufFeature protobufFeature) {
     this.protobufFeature = protobufFeature;
   }
 
-  public void setMicroserviceMetaManager(MicroserviceMetaManager 
microserviceMetaManager) {
-    this.microserviceMetaManager = microserviceMetaManager;
-  }
-
   public boolean init(TcpConnection connection, long msgId,
       RequestHeader header, Buffer bodyBuffer) {
     try {
@@ -103,7 +96,7 @@ private void doInit(TcpConnection connection, long msgId, 
RequestHeader header,
     this.msgId = msgId;
     this.header = header;
 
-    MicroserviceMeta microserviceMeta = 
microserviceMetaManager.ensureFindValue(header.getDestMicroservice());
+    MicroserviceMeta microserviceMeta = 
SCBEngine.getInstance().getProducerMicroserviceMeta();
     SchemaMeta schemaMeta = 
microserviceMeta.ensureFindSchemaMeta(header.getSchemaId());
     this.operationMeta = 
schemaMeta.ensureFindOperation(header.getOperationName());
     this.operationProtobuf = 
ProtobufManager.getOrCreateOperation(operationMeta);
diff --git 
a/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayServerConnection.java
 
b/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayServerConnection.java
index 4f49fbc6f..d5556057b 100644
--- 
a/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayServerConnection.java
+++ 
b/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayServerConnection.java
@@ -16,17 +16,16 @@
  */
 package org.apache.servicecomb.transport.highway;
 
+import javax.xml.ws.Holder;
 import java.net.InetSocketAddress;
 import java.util.concurrent.atomic.AtomicInteger;
 
-import javax.xml.ws.Holder;
-
 import org.apache.servicecomb.codec.protobuf.definition.ProtobufManager;
 import org.apache.servicecomb.codec.protobuf.utils.WrapSchema;
 import org.apache.servicecomb.core.CseContext;
 import org.apache.servicecomb.core.Endpoint;
+import org.apache.servicecomb.core.SCBEngine;
 import org.apache.servicecomb.core.definition.MicroserviceMeta;
-import org.apache.servicecomb.core.definition.MicroserviceMetaManager;
 import org.apache.servicecomb.core.definition.OperationMeta;
 import org.apache.servicecomb.core.definition.SchemaMeta;
 import org.apache.servicecomb.foundation.vertx.stream.BufferOutputStream;
@@ -36,16 +35,17 @@
 import org.junit.Before;
 import org.junit.Test;
 
+import mockit.Expectations;
+import mockit.Mock;
+import mockit.MockUp;
+import mockit.Mocked;
+
 import io.protostuff.LinkedBuffer;
 import io.protostuff.ProtobufOutput;
 import io.vertx.core.buffer.Buffer;
 import io.vertx.core.net.NetSocket;
 import io.vertx.core.net.impl.NetSocketImpl;
 import io.vertx.core.net.impl.SocketAddressImpl;
-import mockit.Expectations;
-import mockit.Mock;
-import mockit.MockUp;
-import mockit.Mocked;
 
 public class TestHighwayServerConnection {
   private static WrapSchema requestHeaderSchema =
@@ -56,9 +56,6 @@
 
   HighwayServerConnection connection;
 
-  @Mocked
-  MicroserviceMetaManager microserviceMetaManager;
-
   @Mocked
   Endpoint endpoint;
 
@@ -147,15 +144,14 @@ public void testRequestNormal(@Mocked MicroserviceMeta 
microserviceMeta, @Mocked
     Buffer headerBuffer = createBuffer(requestHeaderSchema, header);
 
     Buffer bodyBuffer = Buffer.buffer();
-
-    new Expectations(CseContext.getInstance()) {
+    new Expectations(SCBEngine.class) {
       {
-        CseContext.getInstance().getMicroserviceMetaManager();
-        result = microserviceMetaManager;
-
-        microserviceMetaManager.ensureFindValue(null);
+        SCBEngine.getInstance().getProducerMicroserviceMeta();
         result = microserviceMeta;
-
+      }
+    };
+    new Expectations(CseContext.getInstance()) {
+      {
         microserviceMeta.ensureFindSchemaMeta(header.getSchemaId());
         result = schemaMeta;
       }
diff --git 
a/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayServerInvoke.java
 
b/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayServerInvoke.java
index 525b5e0d2..6a7d1327f 100644
--- 
a/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayServerInvoke.java
+++ 
b/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayServerInvoke.java
@@ -133,7 +133,6 @@ public void onFinish(InvocationFinishEvent event) {
     operationMeta.setExecutor(new ReactiveExecutor());
 
     HighwayServerInvoke highwayServerInvoke = new HighwayServerInvoke();
-    
highwayServerInvoke.setMicroserviceMetaManager(unitTestMeta.getMicroserviceMetaManager());
 
     RequestHeader requestHeader = MockUtil.getInstance().requestHeader;
 


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


> delete useless MicroserviceMetaManager
> --------------------------------------
>
>                 Key: SCB-612
>                 URL: https://issues.apache.org/jira/browse/SCB-612
>             Project: Apache ServiceComb
>          Issue Type: Task
>          Components: Java-Chassis
>            Reporter: wujimin
>            Priority: Major
>              Labels: newbie
>
> in previous versions, consumer and producer microserviceMeta all managed by 
> MicroserviceMetaManager
>  
> currently:
> all consumer MicroserviceMeta managed by AppManager
> only producer MicroserviceMeta remains in MicroserviceMetaManager, there is 
> only one MicroserviceMeta instance, so MicroserviceMetaManager is useless
> just move producer MicroserviceMeta to SCBEngine is enough



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to