Feign集成Hystrix原理
1)未集成Hystrix
Feign.builder()
2)集成Hystrix
HystrixFeign.builder()
3)HystrixFeign
4)Feign#target(Target target) 方法返回目标接口的实现类
public <T> T target(Target<T> target) {
return build().newInstance(target);
}
5)build()方法 返回Feign抽象类的实现类,默认是ReflectiveFeign,还有关于异步Feign的ReflectiveAsyncFeign
6)ReflectiveFeign#newInstance(Target target) 方法会利用jdk动态代理生成目标接口的 代理类,InvocationHandler接口的实现类是HystrixInvocationHandler,如果不集成Hystrix,那么就是ReflectiveFeign#FeignInvocationHandler实现类
Feign集成Ribbon原理
RibbonClient