Feign、Sentinel和Hystrix源码解读

本文深入探讨了Feign如何集成Sentinel和Hystrix,通过Spring初始化过程分析BeanDefinition和DI过程。关键在于Feign.Builder的选择,取决于是否已注册及配置文件中的`feign.sentinel.enabled`。当两者都存在时,优先使用Sentinel。
摘要由CSDN通过智能技术生成

Feign是如何集成Sentinel和Hystrix的?

通过代码解读进行剖析。

Spring初始化过程之Feign集成Sentinel与hystrix组件的解读

 

1、BeanDefinition过程

            EnableFeignClients->FeignClientsRegistrar->FeignClientFactoryBean;

 

2、 DI过程,依赖注入,初始化FeignClientFactoryBean,方法流程;


         FeignClientFactoryBean::getObject->getTarget->feign方法->get方法;

         get方法是从现有的Spring容器中找到已经加载的Feign.Builder,并且进行实例化。


Feign.Builder是什么时候加载到Spring容器的,也就是决定使用SentinelFeign.Builder还是HystrixFeign.Builder,此处是关键。
在包spring-cloud-operfeign-core中
默认情况下,使用FeignClientsConfiguration中注册的Feign.Builder;此处进行的声明

@Bean
@Scope("prototype")
@ConditionalOnMissingBean
public Feign.Builder feignBuilder(Retryer retryer) {
	return Feign.builder().retryer(retryer);
}

 

在spring-cloud-starter-alibaba-sentinel包中有一个配置类SentinelFeignAutoConfigu

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值