@SentinelResource 如何区分 blockHandler 和 fallback?
查看完整题解
参考回答
直接回答
注解为方法定义 Sentinel 资源名。blockHandler 处理规则拦截,如限流或熔断拒绝。fallback 处理未被配置排除的业务异常。没有专门拦截处理器时,还需按版本确认其兜底优先级。
讲清原理
处理方法须匹配原方法参数和返回类型,拦截处理器还带一个 BlockException。通过同类内部调用可能绕过 Spring 代理,规则因此不生效。
例子与易错点
查询被限流可返回“请稍后再试”。查库存代码自己抛出的业务异常则落到应用异常处理或对应 fallback。两种情况应分别压测。
延伸阅读 Sentinel 的资源是什么,怎样定义? · Spring Boot 或 Spring Cloud 怎么接入 Sentinel? · BlockException 怎么捕获和处理?
这道题,你掌握得怎么样?
掌握程度由你主动标记,阅读和收藏不会自动改变状态。