beijixing511 opened a new issue, #4675:
URL: https://github.com/apache/servicecomb-java-chassis/issues/4675

   背景:
   1. 微服务A首次调用微服务B,此时会有CreateMicroserviceVersionEvent事件,在微服务A中触发微服务B的元数据加载
   2. 微服务B中定义针对schemaB指定了线程池executorB,但是在微服务A中并未指定
   
   问题:
   1. 此时微服务A中没有指定特殊线程池,但微服务A在查找schemaB的线程配置
   OperationMeta.init
   
![Image](https://github.com/user-attachments/assets/f4c69b74-be08-42cd-9207-d72d3713d501)
   
   2. 微服务A因为找不到schemaB线程池配置,而抛出异常
   
   2025-01-13 18:59:40.905 [group0-1-thread-10] ERROR - 
[MicroserviceVersions.java:safeSetInstances:210] - 
[d2dfe91a-eeab-4f57-b731-8189a524f50a] - Failed to setInstances, 
appId=App****erySec****dSer**ce, 
microserviceName=App****erySec****dServi****ppGall****ecDroi****Serv**e.
   org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean 
named 'healthExecutor' available
           at 
org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:874)
 ~[spring-beans-5.3.34.jar!/:5.3.34]
           at 
org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1359)
 ~[spring-beans-5.3.34.jar!/:5.3.34]
           at 
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310)
 ~[spring-beans-5.3.34.jar!/:5.3.34]
           at 
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:209)
 ~[spring-beans-5.3.34.jar!/:5.3.34]
           at 
org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1171)
 ~[spring-context-5.3.34.jar!/:5.3.34]
           at 
org.apache.servicecomb.foundation.common.utils.BeanUtils.getBean(BeanUtils.java:139)
 ~[foundation-common-2.8.17.jar!/:2.8.17]
           at 
org.apache.servicecomb.core.executor.ExecutorManager.findExecutorById(ExecutorManager.java:118)
 ~[java-chassis-core-2.8.17.jar!/:2.8.17]
           at 
org.apache.servicecomb.core.executor.ExecutorManager.findByKey(ExecutorManager.java:109)
 ~[java-chassis-core-2.8.17.jar!/:2.8.17]
           at 
org.apache.servicecomb.core.executor.ExecutorManager.findExecutor(ExecutorManager.java:83)
 ~[java-chassis-core-2.8.17.jar!/:2.8.17]
           at 
org.apache.servicecomb.core.executor.ExecutorManager.findExecutor(ExecutorManager.java:57)
 ~[java-chassis-core-2.8.17.jar!/:2.8.17]
           at 
org.apache.servicecomb.core.definition.OperationMeta.init(OperationMeta.java:60)
 ~[java-chassis-core-2.8.17.jar!/:2.8.17]
           at 
org.apache.servicecomb.core.definition.SchemaMeta.initOperationMetas(SchemaMeta.java:63)
 ~[java-chassis-core-2.8.17.jar!/:2.8.17]
           at 
org.apache.servicecomb.core.definition.SchemaMeta.<init>(SchemaMeta.java:53) 
~[java-chassis-core-2.8.17.jar!/:2.8.17]
           at 
org.apache.servicecomb.core.definition.MicroserviceMeta.registerSchemaMeta(MicroserviceMeta.java:122)
 ~[java-chassis-core-2.8.17.jar!/:2.8.17]
           at 
org.apache.servicecomb.core.definition.ServiceRegistryListener.onCreateMicroserviceVersion(ServiceRegistryListener.java:105)
 ~[java-chassis-core-2.8.17.jar!/:2.8.17]
           at 
org.apache.servicecomb.foundation.common.event.SimpleSubscriber.syncDispatch(SimpleSubscriber.java:118)
 ~[foundation-common-2.8.17.jar!/:2.8.17]
           at 
org.apache.servicecomb.foundation.common.event.SimpleSubscriber.dispatchEvent(SimpleSubscriber.java:107)
 ~[foundation-common-2.8.17.jar!/:2.8.17]
           at 
org.apache.servicecomb.foundation.common.event.SimpleEventBus.post(SimpleEventBus.java:74)
 ~[foundation-common-2.8.17.jar!/:2.8.17]
           at 
org.apache.servicecomb.registry.consumer.MicroserviceVersion.<init>(MicroserviceVersion.java:58)
 ~[foundation-registry-2.8.17.jar!/:2.8.17]
           at 
org.apache.servicecomb.registry.consumer.MicroserviceVersions.createMicroserviceVersion(MicroserviceVersions.java:259)
 ~[foundation-registry-2.8.17.jar!/:2.8.17]
           at 
org.apache.servicecomb.registry.consumer.MicroserviceVersions.lambda$setInstances$1(MicroserviceVersions.java:240)
 ~[foundation-registry-2.8.17.jar!/:2.8.17]
           at 
java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660)
 ~[?:1.8.0_402]
           at 
org.apache.servicecomb.foundation.common.concurrent.ConcurrentHashMapEx.computeIfAbsent(ConcurrentHashMapEx.java:56)
 ~[foundation-common-2.8.17.jar!/:2.8.17]
           at 
org.apache.servicecomb.registry.consumer.MicroserviceVersions.setInstances(MicroserviceVersions.java:239)
 ~[foundation-registry-2.8.17.jar!/:2.8.17]
           at 
org.apache.servicecomb.registry.consumer.MicroserviceVersions.safeSetInstances(MicroserviceVersions.java:207)
 ~[foundation-registry-2.8.17.jar!/:2.8.17]
           at 
org.apache.servicecomb.registry.consumer.MicroserviceVersions.pullInstances(MicroserviceVersions.java:186)
 ~[foundation-registry-2.8.17.jar!/:2.8.17]
           at 
org.apache.servicecomb.registry.consumer.MicroserviceManager.getOrCreateMicroserviceVersions(MicroserviceManager.java:66)
 ~[foundation-registry-2.8.17.jar!/:2.8.17]
           at 
org.apache.servicecomb.registry.consumer.AppManager.getOrCreateMicroserviceVersions(AppManager.java:70)
 ~[foundation-registry-2.8.17.jar!/:2.8.17]
           at 
org.apache.servicecomb.registry.DiscoveryManager.getOrCreateMicroserviceVersions(DiscoveryManager.java:141)
 ~[foundation-registry-2.8.17.jar!/:2.8.17]
           at 
org.apache.servicecomb.core.SCBEngine.createMicroserviceReferenceConfig(SCBEngine.java:545)
 ~[java-chassis-core-2.8.17.jar!/:2.8.17]
           at 
org.apache.servicecomb.core.SCBEngine.createMicroserviceReferenceConfig(SCBEngine.java:516)
 ~[java-chassis-core-2.8.17.jar!/:2.8.17]
           at 
org.apache.servicecomb.provider.springmvc.reference.CseClientHttpRequest.createRequestMeta(CseClientHttpRequest.java:184)
 ~[provider-springmvc-2.8.17.jar!/:2.8.17]
           at 
org.apache.servicecomb.provider.springmvc.reference.CseClientHttpRequest.execute(CseClientHttpRequest.java:169)
 ~[provider-springmvc-2.8.17.jar!/:2.8.17]
           at 
org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:782) 
~[spring-web-5.3.34.jar!/:?]
           at 
org.springframework.web.client.RestTemplate.execute(RestTemplate.java:717) 
~[spring-web-5.3.34.jar!/:?]
           at 
org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:637) 
~[spring-web-5.3.34.jar!/:?]
           at 
org.apache.servicecomb.provider.springmvc.reference.RestTemplateWrapper.exchange(RestTemplateWrapper.java:196)
 ~[provider-springmvc-2.8.17.jar!/:2.8.17]
   
      
   疑问:
   请帮解答下为什么需要在微服务A中查找微服务B的schemaB配置的线程池?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to