SentinelResource注解配置

@SentinelResource注解在Sentinel热点key中有出现过!这个注解和HystrixCommand是相似的,废话不多说,开始进入正题

编写测试代码

@RestController
public class RateLimitController
{
    @GetMapping("/byResource")
    @SentinelResource(value = "byResource",blockHandler = "handleException")
    public CommonResult byResource()
    {
        return new CommonResult(200,"按资源名称限流测试OK",new Payment(2020L,"serial001"));
    }
    public CommonResult handleException(BlockException exception)
    {
        return new CommonResult(444,exception.getClass().getCanonicalName()+"\t 服务不可用");
    }
}

访问测试
在这里插入图片描述
添加限流
在这里插入图片描述
访问测试
在这里插入图片描述
流控生效,这里返回的message中的com.alibaba.csp.sentinel.slots.block.flow.FlowException,这个类就是处理限流后的异常,上面设置的QPS限流阈值是1,也就是1秒钟只允许一个请求访问,如果超过这个阈值后FlowException将会处理这个异常

默认流控返回
添加测试代码

@GetMapping("/rateLimit/byUrl")
@SentinelResource(value = "byUrl")
public CommonResult byUrl()
{
    return new CommonResult(200,"按url限流测试OK",new Payment(2020L,"serial002"));
}

这里是没有兜底方法的
添加流控规则
在这里插入图片描述
访问测试
在这里插入图片描述
超过限制阈值后没有编写兜底方法,那么将采用系统默认的兜底方法返回提示!

集中处理兜底方法
创建CustomerBlockHandler

/**
* @description: 集中处理兜底方法
* @author TAO
* @date 2020/12/29 12:48
*/
public class CustomerBlockHandler {

    public static CommonResult handleException(BlockException exception) {
        return new CommonResult(2020, "自定义限流处理信息....CustomerBlockHandler");

    }
}

controller

 @GetMapping("/rateLimit/customerBlockHandler")
    @SentinelResource(value = "customerBlockHandler",
            blockHandlerClass = CustomerBlockHandler.class,
            blockHandler = "handlerException2")
    public CommonResult customerBlockHandler()
    {
        return new CommonResult(200,"按客戶自定义",new Payment(2020L,"serial003"));
    }

blockHandlerClass 设置集中处理的类,blockHandler选择限流处理方法

添加流控规则
在这里插入图片描述
访问测试
在这里插入图片描述
那么这里就可以让代码接口,防止代码过于臃肿,可以多个请求对应同一个兜底方法

详情
在这里插入图片描述
注解支持

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员劝退师-TAO

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值