spring-cloud-feign之spring-cloud-1.3.4(Dalston.SR3)-boot(1.5.6) 学习笔记

58 篇文章 0 订阅
53 篇文章 1 订阅

spring-cloud-feign之spring-cloud-1.3.4(Dalston.SR3)-boot(1.5.6) 学习笔记

概述

EnableFeignClients—->引入FeignClientsRegistrar,启用feign相关功能

FeignClientsRegistrar—->解析EnableFeignClients与FeignClient注解信息,注入相关的bean到beanfactory

  • registerDefaultConfiguration—->注册EnableFeignClients上的defaultConfiguration配置
  • registerFeignClients—->解析FeignClient注解
    • registerFeignClient—->利用FeignClientFactoryBean创建feignclient标记的接口的代理实现类

FeignClient—->用于标记接口,表示接口的rest代理类需要创建

  • name/value/url/decode404/configuration/fallback/fallbackFactory
  • type为接口的class信息(在创建接口的代理类时需要使用)

FeignAutoConfiguration

  • 注入FeignContext,用于存放相应的bean信息
  • Targeter—->用于是否使用hystrix作为熔断
    • 当feign.hystrix.HystrixFeign类存在时,注入HystrixTargeter,否则为DefaultTargeter
  • 当无ribbon支持时,即com.netflix.loadbalancer.ILoadBalancer不存在类路径,创建无负载均衡的Client(要么是ApacheHttpClient或者OkHttpClient)

FeignRibbonClientAutoConfiguration—->当ILoadBalancer存在时,加入ribbon支持feign

  • 当beanfactory无Client时,创建LoadBalancerFeignClient,至于是ApacheHttpClient或者OkHttpClient,取决于类路径下类是否存在
  • 注入CachingSpringLoadBalancerFactory,支持负载均衡的缓存

FeignClientsConfiguration—->注入feign级别相关的编解码器、日志工厂、feign生成器

  • Decoder/Encoder/Contract/Feign.Builder/Retryer/FeignLoggerFactory

FeignClientFactoryBean—->根据feignclient解析的信息,以及FeignContext中拥有的bean信息,创建feign代理实现类

  • name/type/fallback/fallbackFactory
  • getObject—->获取代理实现类对象
    • feign—->根据上面配置器配置的bean,从feigncontext中创建Feign.Builder
    • 如果feignclient注解没有配置url参数,则使用loadBalance,创建LoadBalancerFeignClient进行ribbon支持的feign
      • 如果有设置,则使用LoadBalancerFeignClient中实际的要么是ApacheHttpClient或者OkHttpClient进行feign的操作
    • 后续HystrixTargeter.target,如果设置fallback,则targetWithFallback使用HystrixFeign.target创建HystrixInvocationHandler处理器中转处理,
    • 创建feign的hystrixCommand命令完成hystrix支持的feign

测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值