错误页优化不生效
来源:8-22 扩展Sentinel01-错误页优化

shipping
2019-07-21
触发限流时:
4回答
-
大目
2019-07-23
回复 慕粉2104306171: localhost:8090/test-hot?a=3&b=2就应该会报异常啊……这是SentinelResource注解使用的方式,你没有提供blockHandler或者fallback。
你看下 8-25 扩展Sentinel04-透过现象看本质 就知道原因了。
UrlBlockHandler是CommonFilter整合方式的异常处理。CommonFilter不支持热点参数限流规则。
而你那个test-hot上面加了@SentinelResource注解,对于注解的使用方式,应该用@SentinelResource(blockHandler = xxx)去指定造成限流/降级异常时的返回。
至于/shares/1 我这边没能复现,我不知道你规则怎么配的。限流降级规则都无法出现你截图的异常界面。要不你把/shares/1的代码,以及控制台的配置贴一下吧。我看你GitHub上17:29之后没有提交,我这边代码就是最新的。
最后总结一下:
对于Spring MVC那些端点(没有加@SentinelResource注解也会显示在控制台上那些),是通过CommonFilter整合Sentinel的,这种方式用UrlBlockHandler去提供限流/降级的返回。这种方式目前不支持参数热点限流。
对于@SentinelResource注解,用@SentinelResource(blockHandler = xxx)或者 fallback属性提供限流/降级的返回。
这些我视频里都有讲解,建议花一点时间再看一下。Sentinel的细节比较多,不是那么好理解。
112019-08-19 -
大目
2019-07-23
您好,我用您的代码,用/baidu这个端点测试是OK的。
您的问题没有复现。帮忙提供下复现问题的具体步骤。
022019-07-23 -
shipping
提问者
2019-07-21
没有触发规则页面可以正常返回,只有触发规则的时候页面才会这样。
我自己debug,是抛了一个ServletException,在CommonFilter被Tracer捕获了,控制台显示又是ParamFlowException引起的,是我漏了什么吗
022019-07-23 -
大目
2019-07-21
您好,从您截图出来的代码,感觉没什么问题。
在MyUrlBlockHandler上打个断点,看:
断点能否加载(如果能加载,那么断点应该会变成对号的标记)
如果能够加载,再把断点打到CommonFilter中,看代码是怎么执行的。
另外,触发限流的话,应该会有flow limiting的提示,您这边是No message available. 我感觉不像是限流导致的。
您可以先自行定位看看,如果定位不出来,可以把代码托管到GitHub或者Gitee,并给出详细复现步骤,我来看看。
00
相似问题
回答 1
回答 2