apache / apache/servicecomb-java-chassis
[BUG] - 频繁获取不存在配置导致性能劣化
- Lenguaje dominante
- Java
- Estrellas
- 1.9k
- Forks
- 814
- Merge medio
- 8 d 23 h
- PR fusionados (30 d)
- 1
Descripción
### Steps to Reproduce
servicecomb3.2.2版本问题,性能劣化,火焰图分析:
org.apache.servicecomb.router.custom.RouterServerListFilter#enabled,
org.apache.servicecomb.loadbalance.LoadBalanceFilter#getOrCreateLoadBalancer调用org.apache.servicecomb.loadbalance.Configuration#getRuleStrategyName,
org.apache.servicecomb.loadbalance.filter.ZoneAwareDiscoveryFilter#enabled,
org.apache.servicecomb.registry.discovery.InstanceStatusDiscoveryFilter#enabled,
org.apache.servicecomb.core.invocation.InvocationFactory#setSrcMicroservice调用readServiceName(),每次consumer调用都要重复去spring获取上面五个属性,导致consumer操作CPU消耗比2.X多近10倍
### Expected Behavior
_No response_
### Servicecomb Version
_No response_
### Additional Context
_No response_
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Línea de trabajo
Comienza rastreando las rutas por llamada a través de RouterServerListFilter#enabled, LoadBalanceFilter#getOrCreateLoadBalancer, Configuration#getRuleStrategyName, ZoneAwareDiscoveryFilter#enabled, InstanceStatusDiscoveryFilter#enabled e InvocationFactory#setSrcMicroservice/readServiceName. Usa profiling o pruebas específicas para verificar si las cinco propiedades se obtienen repetidamente de Spring. Se considera terminado cuando la regresión de CPU del consumer reportada esté corregida y el comportamiento afectado siga estando cubierto por pruebas.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- java
- Área
- backend, performance
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Necesita aclaración
- Aptitud para principiantes
- 25/100