[
https://issues.apache.org/jira/browse/SCB-2656?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
liubao closed SCB-2656.
-----------------------
Resolution: Duplicate
see
# SCB-2689
> The traffic limiting modole of java-chassis has problems in the dynamic
> configration scenario
> ---------------------------------------------------------------------------------------------
>
> Key: SCB-2656
> URL: https://issues.apache.org/jira/browse/SCB-2656
> Project: Apache ServiceComb
> Issue Type: Bug
> Components: Java-Chassis
> Reporter: hujinming178
> Priority: Major
> Fix For: java-chassis-2.8.0
>
>
> Problem triggered scenario
> Suppose there are two microservices A and B developed by the Java-chassis
> framework, and the B microservice has A contract interface with
> qualifiedName= b.Scchema.oper. If A traffic limiting rule for any.schema.
> oper is added to microservice B in the configuration center after the service
> is started, A invokes the OPER interface of B. B of the org. Apache.
> Servicecomb. QPS. QpsControllerManager# configQpsControllerMap attribute
> cache A.s chema. Oper QpsStrategy object actually is Any.schema. oper
> Specifies the configuration item.
> When you delete the traffic limiting rule of the any.schema. oper interface
> from the configuration center, Dynamic configuration to refresh the callback
> will trigger org. Apache. Servicecomb. QPS. QpsControllerManager#
> updateObjMap method to refresh the cache each interface QpsStrategy object,
> Oper key (configKey= any.schema. oper) does not match the a.sama. oper key
> cached in configQpsControllerMap. Therefore, the QpsStrategy object pointed
> to by a.sama. oper cannot be refreshed. It is still the any.schema. oper
> configuration item, and the configuration value is null. Lead to org. Apache.
> Servicecomb. QPS. Strategy. FixedWindowStrategy# isLimitNewRequest of
> enclosing getQpsLimit () = = null check is true, Throws an
> IllegalStateException("should not Happen "). The schema.oper interface that
> calls Microservice A to B cannot be adjusted.
>
> The problem is the direct cause of org. Apache. Servicecomb. QPS.
> QpsControllerManager# updateObjMap method without considering the micro
> service level for ANY scene, A cache flush in
> QpsControllerManager#updateObjMap may be missed.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)