https://blog.csdn.net/alex_xfboy/article/details/88166216
ribbon總結(jié):
1.LoadBalanceAutoConfiguration
LoadBalance接口--》loadBalanceClient.execute()執(zhí)行的時(shí)候會調(diào)用loadBalanceInterception攔截resttemplate
2.spring-cloud-netflex-ribbon的spring.factories下配置RibbonAutoConfiguration
3.RibbonAutoConfiguration注冊一個(gè)bean,bean的名字叫:SpringClientFactory
4.springClientFactory中會有ribbonClientConfiguration.
ribbonClientConfiguration會有IRule,IPing,IloadBalance等接口
Feign的總結(jié)
1.feignAutoConfiguration會生成bean:FeignContext
2.@enableFeignClient會自動掃描待有@feignClient的bean,然后通過feignContext注入一個(gè)bean,該bean的類型是:FeignFactoryBean.
3.實(shí)例化的時(shí)候會通過feignContext生產(chǎn)一個(gè)feign
feignClient.execute()--->SynchronousMethodHandler處理(為hystrix或者sentinel做處理)--->loadBalanceClient.execute--->restemplate.post
4.1 RibbonAutoConfiguration
為了生成loadBalanceClient
4.2 SpringClientFactory
為了生成loadBalanceClient需要SpringClientFactory
4.3 RibbonClientConfiguration
SpringClientFactory需要RibbonClientConfiguration,RibbonClientConfiguration有l(wèi)oadBalance,IRule,IPing等接口
4.4 LoadBalancerFeignClient
帶有負(fù)載的feignClient
4.5 FeignLoadBalancer
feign的負(fù)載均衡器
4.6 LoadBalancerInterceptor
負(fù)載均衡攔截器,攔截restemplate
loadbalanceAutoConfiguration ribbonAutoConfiguration RibbonClientConfiguration
LoadBalancerInterceptor---> loadbalanceClient--->springClientFactory------->IRule,IloadBalance
LoadBalancerInterceptor需要loadbalanceClient注入
feignRibbonAutoConfiguration
注入了LoadBalancerFeignClient,cachingLBClientFactory兩個(gè)bean
LoadBalancerFeignClient---> cachingLBClientFactory
---> springClientFactory