为什么我这个@SentinelResource 中 EntryType 设置为 IN ?

为什么我这个@SentinelResource 中 EntryType 设置为 IN 后,dashboard 那边显示有进行流控,但实际上每次请求都没有被拦截,而是全部都请求到了我被保护的接口对应的方法?c65b3828099a70f5bd1a9c0dc6fba9d7.png
有大佬知道吗?

展开
收起
真的很搞笑 2023-11-19 14:44:33 106 分享 版权
2 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    如果 @SentinelResource 注解的 EntryType 设置为 IN 但 Dashboard 显示流控正在执行但接口并未真正生效,可能有如下原因:

    1. 您是否已启用 Sentinel 控制台,该注解通常会在 Sentinel 控制台上显示已启动的状态。
    2. 确保 Sentienl 配置文件已经正确配置了 Sentinel 的依赖关系。
    3. 检查 @SentinelResource 注解的类和方法是否正确注册到 Sentinel。
    4. 确认监控的资源是否已经注册到 Sentinel 控制台中。
    2023-11-29 18:13:12
    赞同 展开评论
  • 可能是因为您的代码中没有正确地使用 @SentinelResource 注解。请确保您在需要保护的方法上添加了该注解,并设置了正确的资源名和流控规则。例如:

    import com.alibaba.csp.sentinel.annotation.SentinelResource;
    
    @RestController
    public class MyController {
    
        @SentinelResource(value = "myResource", entryType = EntryType.IN)
        public String myMethod() {
            // your code here
        }
    }
    

    在这个例子中,我们将 myMethod 方法标记为受保护的资源,并设置了流控规则为 IN。当请求量超过阈值时,Sentinel 将拦截请求并执行相应的处理逻辑。请检查您的代码以确保您已正确配置 Sentinel。

    2023-11-29 16:15:18
    赞同 展开评论
问答地址: