Feign熔断

2023-03-10,

Feign中使用

@EnableFeignClients中已经默认打开了断路器功能,所以这里的启动类上不需要再加@EnableCircuitBreaker注解

只需要在@FeignClient中为fallback参数指定fallback方法

因为@FeignClient注解的是接口,所以我们必须创建一个替代的类,就像mock一样

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface FeignClient {
  /**
   * Fallback class for the specified Feign client interface. The fallback class must
   * implement the interface annotated by this annotation and be a valid spring bean.
  */
  Class<?> fallback() default void.class;
}

创建一个实现了HelloService接口的类

最后一步

在配置文件application.yml中开启断路器

在很早的版本中,Feign的断路器默认是开启的。后来有人提issue,认为这样不方便。一旦使用Feign就默认使用了断路器功能,导致了一些问题。后面从D版本开始断路器就是默认关闭的,需要手动打开。

可以看到和Ribbon一样的效果

Feign熔断的相关教程结束。

《Feign熔断.doc》

下载本文的Word格式文档,以方便收藏与打印。