Feign的使用

链接 : spring社区   http://projects.spring.io/spring-cloud/spring-cloud.html#spring-cloud-feign

             github    https://github.com/OpenFeign/feign

            简书  http://www.jianshu.com/p/46ef7e378aa0


原理:通过@EnableFeignClient注解开启@FeignClient

           再具体接口上添加@FeignClient注解,并添加配置类和server名称

           程序启动后,spring会自动扫描所有注解,并构建Bean添加到IOC容器中

          当接口方法被调用时,请求会被拦截,之后jdk通过代理根据请求参数生成一个RequestTemplate(http请求的模板),并调用方法执行这个模板获得http请求的response

          执行的过程是,由RequestTemplate生成Request,并交给Client处理

          Client组件是用来发送请求的客户端,Client可以由HttpUrlConnection,HttpClient, OkHttp实现,默认为HttpUrlConnection。

          我们可以通过更改Feign的配置来自己定制Client,Client被封装到LoadBalanceFeignClient实现负载均衡


配置:对于每一个被@FeignClient注解了的接口,我们可以添加自己定制的配置类修改默认的配置项。自定义的配置会覆盖默认配置项。为了防止配置被扫描导致所有接口都被            覆盖,实现的配置类最好放在不同的package中。

           默认实现的配置Bean有: Decoder,  Encoder, Logger, Contract  Feign.Builder

           可自己添加的配置Bean有: Logger.Level , Retryer, ErrorDecoder, Request.Options, Collection<RequestInterceptor>              

           各配置项的解释:http://blog.csdn.net/zheng0518/article/details/65635357        


Feign与Ribbon

Feign自动实现Ribbon的负载均衡。实现原理是当负责发送请求的Client准备就绪后,会被封装到LoadBalancerFeignClient类中。

这个类实现了Ribbon的负载均衡。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值