简介
主要用来介绍下Feign相关实现机制;
流程简图
说明:
- 1.利用相关注解将FeignClient在初始化时进行动态代理,在调用FeignClient时通过动态代理Proxy将Request转成请求魔板RequestTemplate;
- 2.MethodHandler的实现对象例如SynchronousMethodHandler会对RequestTemplate进行在处理,包括执行Request,对Response结果进行Decode等操作;
- 3.LoadBalancerFeignClient对Reques进行执行,并封装成RibbonRequest,交给FeignLoadBalancer进行处理;
- 4 .FeignLoadBalancer如果在引入重试机制,则会由RetrableFeignLoadBalancer替换FeignLoadBalancer进行重试语境的相关处理,同时会根据RibbonPreperties进行连接初始化;
结论:
FeignClient在集成Ribbon时,无须进行额外超时重试设置,以Ribbon相关配置为准;