回复 慕粉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的细节比较多,不是那么好理解。