使用 @SentinelResource 注解

使用 @SentinelResource 注解


  1. 引入依赖
        <!--使用sentinel注解方式进行流控-->
        <dependency>
            <groupId>com.alibaba.csp</groupId>
            <artifactId>sentinel-annotation-aspectj</artifactId>
        </dependency>
  1. 在配置类或者启动类上配置 Bean
    @Bean
    public SentinelResourceAspect sentinelResourceAspect(){
        return new SentinelResourceAspect();
    }
  1. 在 controller 对请求进行限流
   /*
    使用注解的方式,进行流控设置
     */
    @GetMapping("/ann")
    @SentinelResource(value = "/order/ann", blockHandler = "exceptionHandler", fallback = "helloFallback")
    public User testAnnotation(){
        int a = 1/ 0;
        return new User("kasha!");
    }

在它下边跟上相应方法

    public User exceptionHandler(BlockException be){
        be.printStackTrace();
        return new User("被流控了");
    }

    public User helloFallback(){
        return new User("helloFallback");
    }
  1. 使用注解也要进行规则配置,然后加载规则
 /**
     * 生命周期方法,spring的初始化方法
     * 定制sentinel的流控规则
     */
    @PostConstruct
    private static void initFlowQpsRule(){
        // 流控规则
        List<FlowRule> rules = new ArrayList<>();


              /*
        使用sentinelResource注解也要定义规则
         */
        FlowRule rule2 = new FlowRule();
        rule2.setResource("/order/ann");
        rule2.setGrade(RuleConstant.FLOW_GRADE_QPS);
        rule2.setCount(1);
        rules.add(rule2);
        // 加载配置好的规则
        FlowRuleManager.loadRules(rules);
    }
  1. 以上就是基本步骤。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值