我们知道Feign其实就是对Hystrix的容错、服务降级、异常处理、负载均衡等进行的封装,这些在feign中通通都有,那么大家可能会想到容错的问题,在Feign中如何配置呢?发生错误该怎么办呢?去哪里去调用呢?
首先在feign-conssumer中创建一个UserServiceFallback
@Component
public class UserServiceFallback implements UserService {
@Override
public User getUserById(Long id) {
User user = new User();
user.setUsername("default");
return user;
}
}
然后在feign-consumer的UserService中作如下修改,指明处理异常的类的名字:
然后还要在配置文件中配置feign.hystrix.enabled=true,因为默认情况下是没有开启hystrix的功能的。
此时如果关掉provider服务,然后启动项目进行测试,我们会发现已经发生了服务降级username被赋值为default了: