本文主要分析被 @FeignClient 注解的接口類請求過程中負載均衡邏輯,流程分析使用的源碼版本信息如下:
<spring-boot.version>3.2.1</spring-boot.version><spring-cloud.version>2023.0.0</spring-cloud.version>
背景
平常我們代碼里用@FeignClien注解一個接口類,實現一個遠程接口(如下)
@FeignClient(name = ServiceNameConstants.XXX, fallbackFactory = XXXFactory.class)
public interface RemoteXXXService {@GetMapping("/XXX/getById")Result<XXX> getById(@RequestParam("Id") String Id);
}
FeignBlockingLoadBalancerClient
這個類是歸屬spring-cloud-starter-openfeign依賴
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
BlockingLoadBalancerClient
這個類由以下依賴引入
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
todo~~