使用 @SentinelResource
注解进行限流、熔断,同时规则里面设置了 limitApp
属性,怎么能更改 origin
的值,在com.alibaba.csp.sentinel.CtSph#entryWithPriority(com.alibaba.csp.sentinel.slotchain.ResourceWrapper, int, boolean, java.lang.Object...)方法里面通过InternalContextUtil.internalEnter(Constants.CONTEXT_DEFAULT_NAME)设置Context对象的属性,但是 origin
的值为空字符串,限流的逻辑在com.alibaba.csp.sentinel.slots.block.flow.FlowRuleChecker#selectNodeByRequesterAndStrategy方法里面比较 limitApp
和 origin
的值,两者不一致,导致限流失败。
1条答案
按热度按时间mspsb9vt1#
凑巧看到,我的实现方案