总结一下发生错误常见的几种情况
-
方法返回类型必须和兜底方法返回类型一致
-
第二种出错的情况就是将blockHandler打错,打成了blockedHandler。
blockHandler:超出流量限制的请求调用会进入blockHandler。即若本次访问被限流或服务降级,则调用blockHandler指定的接口。 -
限流规则里的资源名必须和@SentinelResource注解声明的资源一致才能进入自定义的blockHandler方法。
第三种情况也就是我遇到的情况,Sentinel中新建规则的资源名应该是与@SentinelResource中value的参数对应的值一致,而我因为通过点击默认的资源而导致新建的资源名多带了一个/ 。
这个是错误的资源名,因为与代码中value的值不一致,多了一个 /
所以当资源被限流之后,报的仍是默认的错误
通过将资源名更改与@SentinelResource的value值一致时,则可以正常进入blockHandler方法中。
正确的配置:
被限流后可以访问到自定义的方法:
将三种常见的出错情况进行总结,防止大家和我一样踩坑。希望每一个努力的人都可以学有所成!