apache / apache/servicecomb-java-chassis
[BUG] - 频繁获取不存在配置导致性能劣化
- Langage dominant
- Java
- Étoiles
- 1.9k
- Forks
- 814
- Merge moyen
- 8 j 23 h
- PR mergées (30 j)
- 1
Description
### 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_
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Piste de recherche
Commencez par retracer les chemins par appel à travers RouterServerListFilter#enabled, LoadBalanceFilter#getOrCreateLoadBalancer, Configuration#getRuleStrategyName, ZoneAwareDiscoveryFilter#enabled, InstanceStatusDiscoveryFilter#enabled et InvocationFactory#setSrcMicroservice/readServiceName. Utilisez le profiling ou des tests ciblés pour vérifier si les cinq propriétés sont récupérées à répétition depuis Spring. C’est terminé lorsque la régression signalée de l’utilisation CPU du consumer est corrigée et que le comportement concerné reste couvert par des tests.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- java
- Domaine
- backend, performance
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- À clarifier
- Accessibilité débutants
- 25/100