ribbon的源碼解析

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容