Spring-cloud學習筆記---Ribbon原始碼剖析之攔截器Interceptor方法
Spring-cloud學習筆記—Ribbon原始碼剖析之攔截器Interceptor方法
1. 分析攔截器主要分析LoadBalancerInterceptor的intercept()
⽅法
2. 那麼RibbonLoadBalancerClient
物件是在哪裡注入的?
- 回到最初的⾃動配置類
RibbonAutoConfiguration
中,如下圖紅色框 - 所以說負載均衡的事情執⾏,原來交給了我們最初看到的
RibbonLoadBalancerClient
物件
3. 接下來回到LoadBalancerInterceptor
類中檢視intercept
方法
- 檢視方法最後一行
loadBalancer.execute
方法,如下圖紅色框部分 - 點選上圖紅色框
execute
方法後,進入LoadBalancerClient
介面檢視execute
方法,點選execute
方法直接進入RibbonLoadBalancerClient
實現類,檢視execute
方法,RibbonLoadBalancerClient
的execute()
方法是⾮常核⼼
的⼀個⽅法,總結如下:
- 檢視關注1,點選
getLoadBalancer
方法
- 開始懷疑
ILoadBalancer
例項是什麼時候注入的 ,這時回到主配置類RibbonAutoConfiguration
- 點選
SpringClientFactory
類進行檢視,發現裡面裝配了很多東西,他在裡面也搞了一個ILoadBalancer
,也是獲取例項,從裡面去拿
- 主要記住
SpringClientFactory
類的構造器,他裡面呼叫了一個父類,父類呼叫了一個引數RibbonClientConfiguration
- 檢視
RibbonClientConfiguration
,在這個類中裝配了⼤腦(LoadBalancer:負載均衡排程管理)
和肢⼲(另外四個)
四肢之一
,自己有配置就按配置,沒有的話就按照預設的ZoneAvoidanceRule
:區域權衡策略(預設策略)
大腦
,自己有配置就按配置,沒有的話就按照預設的,ZoneAwareLoadBalancer
:區域感知負載均衡器
相關文章
- Okhttp的Interceptor攔截器原始碼解析HTTP原始碼
- Spring-cloud學習筆記--- Eureka原始碼剖析之服務註冊介面SpringCloud筆記原始碼
- Spring-Cloud之Ribbon原理剖析SpringCloud
- Mybatis Interceptor 攔截器MyBatis
- 攔截器(Interceptor)與過濾器(Filter)過濾器Filter
- gRPC(六)進階:攔截器 interceptorRPC
- Python 學習筆記 - socketserver原始碼剖析Python筆記Server原始碼
- OkHttp 原始碼剖析系列(二)——攔截器整體流程分析HTTP原始碼
- SpringMVC中的攔截器Interceptor實現SpringMVC
- axios原始碼分析——攔截器iOS原始碼
- 過濾器 Filter 與 攔截器 Interceptor 的區別過濾器Filter
- SpringBoot攔截器及原始碼分析Spring Boot原始碼
- OKHttp原始碼解析(6)----攔截器CallServerInterceptorHTTP原始碼Server
- OKHttp原始碼解析(2)----攔截器RetryAndFollowUpInterceptorHTTP原始碼
- OKHttp原始碼解析(3)----攔截器BridgeInterceptorHTTP原始碼
- OKHttp原始碼解析(4)----攔截器CacheInterceptorHTTP原始碼
- OKHttp原始碼解析(5)----攔截器ConnectInterceptorHTTP原始碼
- spring mvc攔截器,spring攔截器以及AOP切面的區別和原始碼SpringMVC原始碼
- Solon 的過濾器 Filter 和兩種攔截器 Handler、 Interceptor過濾器Filter
- 解決在Interceptor攔截器中使用@DubboReference注入為nullNull
- Struts2 原始碼分析-----攔截器原始碼解析 --- ParametersInterceptor原始碼
- OkHttp 原始碼剖析系列(一)——請求的發起及攔截器機制概述HTTP原始碼
- 原始碼解析Grpc攔截器(C#版本)原始碼RPCC#
- 精盡Spring MVC原始碼分析 - HandlerMapping 元件(二)之 HandlerInterceptor 攔截器SpringMVC原始碼APP元件
- 原始碼分析三:OkHttp(2)—攔截器簡介原始碼HTTP
- Universal播放器的原始碼學習筆記播放器原始碼筆記
- springcloud學習筆記(三)Spring Cloud RibbonSpringGCCloud筆記
- Retrofit原始碼學習筆記原始碼筆記
- Spring-Cloud之Feign原理剖析SpringCloud
- async-validator 原始碼學習筆記(六):validate 方法原始碼筆記
- 《Android原始碼設計模式》學習筆記之ImageLoaderAndroid原始碼設計模式筆記
- 使用 Angular HTTP_INTERCEPTOR 攔截器來記錄超時請求的一些思考AngularHTTP
- Java後臺開發學習(2)——攔截器Java
- SpringCloud學習筆記:負載均衡Ribbon(3)SpringGCCloud筆記負載
- 學習筆記 sync/RWMutex原始碼筆記Mutex原始碼
- jQuery原始碼學習筆記一jQuery原始碼筆記
- vue原始碼學習筆記1Vue原始碼筆記
- Flume內建攔截器與自定義攔截器(程式碼實戰)