Feign概述

Feign是声明式的Web服务客户端, 使得编写Web服务客户端变的非常容易, 只需要创建一个接口, 然后在上面添加注解即可。

Feign旨在使编写Java Http客户端变的更容易。

在使用Ribbon+RestTemplate时, 利用RestTemplate对http请求的封装处理, 形成了一套模板化的调用方法。但是在实际开发中, 由于对服务依赖的调用可能不止一处, 往往一个接口会被多出调用, 所以通常都会针对每个微服务自行封装一些客户端类来包装这些以来服务的调用。所以Feign在此基础上做了进一步封装, 由他来帮助我们定义和实现依赖服务接口的定义。在Feign的实现下, 我们只需要创建一个接口并使用注解的方式来配置它, 即可完成对服务提供方的接口绑定, 简化了使用Spring Cloud Ribbon时, 自动封装服务调用客户端的开发量。

Feign集成了Ribbon, 通过Ribbon来维护服务列表及客户端的负载均衡。Feign只需要定义服务绑定接口且以声明式的方法, 优雅而简单的实现了服务调用。

搭建Feign客户端

根据microservicecloudconsumerdept80搭建microservicecloudconsumerdeptfeign。

删除myrule文件夹, 在启动类中添加@EnableFeignClients注解

SpringCloud学习(5)——Feign负载均衡-LMLPHP

SpringCloud学习(5)——Feign负载均衡-LMLPHP

添加Feign依赖

SpringCloud学习(5)——Feign负载均衡-LMLPHP

修改Controller控制层

SpringCloud学习(5)——Feign负载均衡-LMLPHP

修改microservicecloudapi, 添加Feign需要的接口文件并添加@FeignClient注解

SpringCloud学习(5)——Feign负载均衡-LMLPHP

添加Feign依赖

SpringCloud学习(5)——Feign负载均衡-LMLPHP

完成之后清理下maven

SpringCloud学习(5)——Feign负载均衡-LMLPHP

测试

SpringCloud学习(5)——Feign负载均衡-LMLPHP

GitHub源码

https://github.com/wcd19901010/microservicecloud

05-07 14:53