Utilisez Sentinel pour protéger les appels à distance Feign: mécanisme de fusible (en un mot: l'appelant s'appelle fuse, le fournisseur s'appelle downgrade)
-
1) 调用方开启熔断保护
-
2) 调用手动指定远程服务的降级策略 远程服务被降级处理,出发我们的熔断回调方法
-
3) 超大浏览的时候,必须牺牲一些远程服务。在服务的提供方(远程服务)指定降级策略,
-
提供方是在运行,但使不运行自己的业务逻辑,返回他是默认的降级数据(限流的数据)
Ajoutez les informations suivantes au fichier de configuration application.properties
#开启熔断降级
feign.sentinel.enabled=true
Ajoutez les informations de classe de fusible à l'interface appelée par l'appelant distant feindre
//告诉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);
}
Ecrire la classe de disjoncteur de l'appelant
/**
* @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());
}
}