一、客户端负载均衡 - OpenFeign
1.什么是Feign
1.1.为什么要使用Fegin
我们在使用Ribbon作为客户端负载均衡完成订单服务和用户服务的通讯,通过RestTemplate调用其它服务时,所需要的参数须在请求的URL中进行拼接 (http://user-server/user/),如果参数多了就拼接就非常繁琐,代码不优雅,效率低下。Fegin基于Ribbon进行了封装,把一些负责的url和参数处理细节屏蔽起来 因此使用Fegin服务调用方式来进行远程微服务调用就会显得代码更优雅,效率更高。
1.2.什么是Feign
Feign是一个声明式的http客户端,使用Feign可以实现声明式REST调用,它的目的就是让Web Service调用更加简单。Feign整合了Ribbon和SpringMvc注解,这让Feign的客户端接口看起来就像一个Controller。Feign提供了HTTP请求的模板,通过编写简单的接口和插入注解,就可以定义好HTTP请求的参数、格式、地址等信息
。而Feign则会完全代理HTTP请求,我们只需要像调用方法一样调用它就可以完成服务请求及相关处理。同时Feign整合了Hystrix,可以很容易的实现服务熔断和降级
2.Feign的编程实战(重要)
2.1 创建工程
2.2 导入依赖
导入Feign,Eureka Client和web的依赖包,同时依赖user-模块 ,具体的 pom.xml如下
<dependencies> <!--导入eureka依赖--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <!--导入web的依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--导入openfeign的依赖--> <dependency>