一、客户端负载均衡 - 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的编程实战(重要)