zl程序教程

您现在的位置是:首页 >  Python

当前栏目

springcloud3 nacos,sentinel,ribbon,openfegin等整合案例4[fallback+blockhandler完美整合]

2023-04-18 16:42:07 时间

一  说明

1.1 结论

@SentinelResource(value = "fb",fallback = "handlerFallback") //fallback只负责业务异常 @SentinelResource(value = "fb",blockHandler = "blockHandler") //blockHandler只负责sentinel控制台配置违规
假设fallback和blockhandler都进行配置,如果是业务逻辑本身报java异常,则执行fallback业务处理,当触发满足sentinel配置的限流降级等规则,则进行blockhandler的处理。

1.2 说明

本案例操作是在

springcloud3 nacos,sentinel,ribbon,openfegin等整合案例1-3的基础想进行操作

本案例存在的情况是:既有java异常,又有sentinel的配置规则 

@SentinelResource(value = "fallback",fallback = "handlerFallback",blockHandler = "blockHandler",exceptionsToIgnore = {IllegalArgumentException.class})

其中 exceptionsToIgnore = {IllegalArgumentException.class} 可以让制定的异常进行忽略,不走fallback策略处理。

二 操作部署

2.1 配置fallback和blockhandler

2.2 启动测试

2.2.1 启动服务

1.启动nacos和sentinel

2.配置限流规则和降级规则

2.2.2 测试

1.正常访问

 快速访问,触发限流

 2.查询数据不存在

出现异常,执行fallback逻辑

快速访问后,触发异常数满足降级规则,执行sentinel配置blockhandler的规则 

 3.查询参数不存在

出现异常,执行fallback逻辑

快速访问后,触发异常数满足降级规则,执行sentinel配置blockhandler的规则