依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
相对于Ribbon搭配使用来说,Feign实现断路器较之简便很多,由于Feign本就整合了Hystrix,具有熔断能力,所以无需添加其它依赖,启动类上也可不添加@EnableHystrix注解,只需在@FeignClient注解中设置异常回调就行:
@FeignClient(value = "service-hi", fallback = SchedualServiceHiBack.class)
public interface SchedualServiceHi {
@GetMapping(value = "/hi")
String sayHiFromClientOne(@RequestParam(value = "name") String name);
}
回调异常类SchedualServiceHiBack需要继承SchedualServiceHi,以便处理不同API的回调。
@Component
public class SchedualServiceHiHystrix implements SchedualServiceHi {
@Override
public String sayHiFromClientOne(String name) {
return "来自遥远深处的错误";
}
}
当然,这时候还是不能达到异常回调处理,重要的要来了,Feign默认是关闭熔断能力的,我们需要再配置文件中打开:
feign:
hystrix:
enabled: true