springboot整合sentinel实现接口限流

1. 服务端搭建

  • 下载地址: https://github.com/alibaba/Sentinel/releases
  • 使用java -jar sentinel-dashboard-1.6.0.jar来启动,访问地址localhost:8080

在这里插入图片描述 账号密码都为 sentinel
控制台如下在这里插入图片描述

2. 客户端搭建

  • springboot项目添加下面的依赖
<!--sentinel-->
       <dependency>
           <groupId>org.springframework.cloud</groupId>
           <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
           <version>0.2.2.RELEASE</version>
       </dependency>
  • yml中添加配置
spring:
 application:
   name: sentinel-server
 cloud:
  sentinel:
    transport:
      dashboard: localhost:8080   #sentinel地址
    #eager: true

3. 启动项目,访问接口

在这里插入图片描述

4. 对方法进行限流,熔断与降级

  1. 添加注解支持的配置
 @Bean
  public SentinelResourceAspect sentinelResourceAspect(){
      return new SentinelResourceAspect();
  }
  1. 方法上添加注解
@Service
public class SentinelServiceImpl implements SentinelService {

   

    @Override
    @SentinelResource(value = "test", blockHandler = "exceptionHandler")
    public String test() {
        return "sucessful";

    }
    // 限流与熔断处理
    public String exceptionHandler(BlockException ex){
        System.out.println("进入熔断");
        return "handler->Exception ->success";
    }
 }

当方法被限流后会进入 blockHandler中的方法,同时服务端会显示注解下的资源点
在这里插入图片描述

  1. 对方法进行降级
@Service
public class SentinelServiceImpl implements SentinelService {

 
    @Override
    @SentinelResource(value = "test2", fallback = "fallbackHandler")
    public String test2() {
        System.out.println(1/0);
        return "sucessful + test2";

    }
    // 降级处理
    public String fallbackHandler(){
        return "faild + test2";
    }

}
  1. 降级配置 查看sentinel-service,可以看到簇点链路名为test2的资源点。然后点击”降级“按钮,为该资源设置降级规则。这里使用异常比例策略,比例设置为0.5(即:50%的异常率),时间窗口设置为2(秒)。
    在这里插入图片描述
  2. 验证熔断降级,根据上面的降级策略配置,当test2方法的调用QPS >= 5,如果异常率超过50%,那么后续2秒内的调用将直接触发熔断降级
    在这里插入图片描述
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值