SpringClude--feign介绍

Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使用Feign,只需要创建一个接口并注解。它具有可插拔的注解特性,可使用Feign 注解和JAX-RS注解。Feign支持可插拔的编码器和解码器。Feign默认集成了Ribbon,并和Eureka结合,默认实现了负载均衡的效果。feign是声明式的web service客户端,它让微服务之间的调用变得更简单了,类似controller调用service。Spring Cloud集成了Ribbon和Eureka,可在使用Feign时提供负载均衡的http客户端。

简而言之:
•    Feign 采用的是基于接口的注解
•    Feign 整合了ribbon

feign作用
封装了Http调用流程,更适合面向接口化的变成习惯
在服务调用的场景中,我们经常调用基于Http协议的服务,而我们经常使用到的框架可能有HttpURLConnection、Apache HttpComponnets、OkHttp3 、Netty等等,这些框架在基于自身的专注点提供了自身特性。而从角色划分上来看,他们的职能是一致的提供Http调用服务。

 

feign核心类介绍

feign.Feign.Builder 设置发送http请求的相关参数,比如http客户端,重试策略,编解码,超时时间等等

feign.Contract.Default 解析接口方法的元数据,构建http请求模板
feign.Client 发送http请求客户端,默认实现feign.Client.Default,使用的是java.net包实现的
Retryer 重试,默认实现feign.Retryer.Default,超时延迟100ms开始重试,每隔1s重试一次,重试4次
Options 超时时间,默认连接超时10s,读超时60s
feign.codec.Encoder 编码器
feign.codec.Decoder 解码器
RequestInterceptor 请求拦截器,可以在发送http请求之前执行此拦截器
feign.Contract 接口以及方法元数据解析器
以上参数都可以自己扩展
HardCodedTarget 定于目标接口和url
ReflectiveFeign 生成动态代理类,基于jdk的动态代理实现
feign.InvocationHandlerFactory.Default 接口方法统一拦截器创建工厂
FeignInvocationHandler 接口统一方法拦截器
ParseHandlersByName 解析接口方法元数据
SynchronousMethodHandler.Factory 接口方法的拦截器创建工厂
SynchronousMethodHandler 接口方法的拦截器,真正拦截的核心,这里真正发起http请求,处理返回结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值