sentinel在调用方做熔断降级

使用Sentinel来保护Feign远程调用:熔断机制(一句话:调用方叫熔断,提供方叫降级)

  • 1) 调用方开启熔断保护
    
  • 2) 调用手动指定远程服务的降级策略 远程服务被降级处理,出发我们的熔断回调方法
    
  • 3) 超大浏览的时候,必须牺牲一些远程服务。在服务的提供方(远程服务)指定降级策略,
    
  •     提供方是在运行,但使不运行自己的业务逻辑,返回他是默认的降级数据(限流的数据)
    

配置文件application.properties添加如下信息

#开启熔断降级
feign.sentinel.enabled=true

在这里插入图片描述
在远程调用方feign调用的接口上添加熔断的类信息

//告诉spring cloud 这个接口是一个远程客户端 调用远程服务
//feign sentinel 熔断保护 fallback =表示出错了 回调哪个?
@FeignClient(value = "gulimall-seckill", fallback = SeckillFeignServiceFallBack.class)//这个远程服务
public interface SeckillFeignService {
    
    

    /**
     * 来自远程服务gulimall-product
     * 获取当前sku的秒杀预告信息
     */
    @GetMapping("/sku/seckill/{skuId}")
    R getSkuSeckillInfo(@PathVariable("skuId") Long skuId);
}

编写调用方熔断类

/**
 * @date 2021-02-22 4:15 下午
 * @description feign sentinel 熔断保护方法
 */
@Slf4j
@Component
public class SeckillFeignServiceFallBack implements SeckillFeignService {
    
    

    @Override
    public R getSkuSeckillInfo(Long skuId) {
    
    
        log.info("熔断方法调用 getSkuSeckillInfo(). ..");
        return R.error(BizCodeEnume.TO_MANY_REQUEST.getCode(), BizCodeEnume.TO_MANY_REQUEST.getMsg());
    }
}

猜你喜欢

转载自blog.csdn.net/u014496893/article/details/114377772