Feign流程分析
2021-09-01 20:46:33 15 举报
Feign流程分析+整合Hystrix+rabbion
作者其他创作
大纲/内容
是
自动配置
否
工厂类创建Bean
工厂Bean创建每个FeignClient注解的接口的代理类
List<FeignClientFactoryBean>
是否存在com.netflix.loadbalancer.ILoadBalancer?
@EnableFeignClients
@Import
client执行
注入
1)FeignClientsConfiguration2)当前Feign对应的配置类3)默认的配置类
是否存在HystrixFeign 和 HystrixCommand?
ILoadBanlace
FeignContext
SpringMvcContract
HystrixFeign.Builder.target
LoadBalancerFeignClient
OkHttpClient
Main-ApplictionContext
整合Hystrix
整合Rabbion
构建Builder
创建FeignCLient代理类
FeignClientsConfiguration
注册每个FeignClient的FeignClientSpecification
FeignAutoConfigurationOkHttpFeignLoadBalancedConfiguration
代理类执行器HystrixInvocationHandler
注册默认的FeignClientSpecification
如果是LoadBalancerFeignClient
是否存在feign.hystrix.HystrixFeign?
FeignContext继承自NamedContextFactory
配置类
HystrixTargeter
SpringEncoderResponseEntityDecoder
Feign.Builder
FeignClientsRegistrar
fallbackrxJava响应式执行
1、此执行器,通过HystrixCommand执行,异常后会执行Fallback2、执行框架为rxJava响应式编程
Feign.Builder.target
XXXFeign ApplictionContext
HystrixFeign.Builder
获取Target
是否HystrixFeign.Builder
DefaultTargeter
生成代理类
代理类执行器FeignInvocationHandler
List<FeignClientSpecification>
获取配置类
FeignAutoConfiguration
直接执行
1、每一个微服务对应的所有FeignClient,都会存在在一个 Child ApplicationContext
注册每个FeignClient的FeignClientFactoryBean
0 条评论
下一页