SpringCloudRPC远程调用核心原理:feign,java模拟面试视频

本文详细解析了SpringCloud中Feign实现RPC远程调用时的负载均衡机制,重点介绍了FeignRibbonClientAutoConfiguration和FeignAutoConfiguration两个配置类的作用,以及如何通过ILoadBalancer接口实现客户端负载均衡。同时,文中还提及了ApacheHttpClient和OkHttpClient的负载均衡配置,并提供了相关依赖的引入方式。
摘要由CSDN通过智能技术生成

装配LoadBalancerFeignClient负载均衡容器实例

=================================

详细来看,Feign涉及的与Client相关的两个自动配置类具体如下:

(1)

org.springframework.cloud.openfeign.ribbon.FeignRibbonClientAutoConfiguration:此自动配置类能够配置具有负载均衡能力的FeignClient容器实例。

(2)

org.springframework.cloud.openfeign.FeignAutoConfiguration:此自动配置类只能配置原始的FeignClient客户端容器实例。

事实上,第一个自动配置类

FeignRibbonClientAutoConfiguration在容器的装配次序上优先于第二个自动配置类FeignAutoConfiguration。

为了达到高可用,Spring Cloud中一个微服务提供者至少应该部署两个以上节点,从这个角度来说,LoadBalancerFeignClient容器实例已经成为事实上的标配。

具体可以参见

FeignRibbonClientAutoConfiguration源码,节选如下:

import com.netflix.loadbalancer.ILoadBalancer;

@ConditionalOnClass({ILoadBalancer.class, Feign.class})

@Configuration

@AutoConfigureBefore({FeignAutoConfiguration.class}) //本配置类具备优先权

@EnableConfigurationProperties({FeignHttpClientProperties.class})

@Import({

HttpClientFeignLoadBalancedConfiguration.class,//配置:包装ApacheHttpClient实例的负载均衡客户端

OkHttpFeignLoadBalancedConfiguration.class, //配置:包装OkHttpClient实例的负载均衡客户端

DefaultFeignLoadBalancedConfiguration.class //配置:包装Client.Default实例的负载均衡客户端

})

public class FeignRibbonClientAutoConfiguration {

//空的构造器

public FeignRibbonClientAutoConfiguration() {

}

}

从源码中可以看到,

FeignRibbonClientAutoConfigurat

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值