apache / servicecomb-java-chassis

ServiceComb Java Chassis is a Software Development Kit (SDK) for rapid development of microservices in Java, providing service registration, service discovery, dynamic routing, and service management features
Apache License 2.0
1.91k stars 813 forks source link

2.6.0版本,动态变更配置部分场景下变更不生效 #3810

Open yanghao605 opened 1 year ago

yanghao605 commented 1 year ago

https://github.com/apache/servicecomb-java-chassis/blob/8207a76ecb0620f989173ce5c5a776aaaea0af4d/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/QpsControllerManager.java#LL207C40-L207C40

yanghao605 commented 1 year ago

ANY对应的限流配置不会被更新到service对应的限流策略上

lbc97 commented 1 year ago

对应微服务日志是否有打印限流的配置变更日志

yanghao605 commented 1 year ago

微服务配置变更日志是有的,这个问题高版本应该是修复了,原因是基于ANY下发的限流配置,在服务的限流策略缓存里面存储的key是消费端的服务名,当ANY的配置变更后,在KeyMatch函数中无法匹配上,导致对应服务的限流配置没有变更

lbc97 commented 1 year ago

https://github.com/apache/servicecomb-java-chassis/commit/eb562278031a9a0e931c022c70fc6b61c4f91b13

lbc97 commented 1 year ago

eb56227

这个应该是修改issue你看一下 是否解决了你的问题 是的话就可以关掉这个issue了

yanghao605 commented 1 year ago

不是,这个pr只是修复了一种场景下出现java.lang.IllegalStateException: should not happen的异常情况 对于本issue中的问题并没有修复,而且对于provider限流配置建立后,再动态删除对应的配置,更新限流策略后,限流里面的limit值为空,也会出现java.lang.IllegalStateException: should not happen的异常情况

lbc97 commented 1 year ago

你前头讨论的场景是should not happen报错吗

lbc97 commented 1 year ago

方不方便把报错堆栈贴出来

yanghao605 commented 1 year ago

前面说的是配置修改,限流策略不生效,eb56227这个关联的不是那个should not happen这个问题吗? image

lbc97 commented 1 year ago

你是不是点错链接了

lbc97 commented 1 year ago

[SCB-2210]fix the flow control error when configuration changed in config center

yanghao605 commented 1 year ago

eb56227

这个应该是修改issue你看一下 是否解决了你的问题 是的话就可以关掉这个issue了

那个pr相关的应该是这个issue2274,并没有解决我现在提的问题

yanghao605 commented 1 year ago

微服务配置变更日志是有的,这个问题高版本应该是修复了,原因是基于ANY下发的限流配置,在服务的限流策略缓存里面存储的key是消费端的服务名,当ANY的配置变更后,在KeyMatch函数中无法匹配上,导致对应服务的限流配置没有变更

你可以参照我说的这种情况在2.6.0版本验证一下