目录
一.客户端负载均衡-OpenFeign
1.什么是Feign
- Feign是一个声明式的http客户端,使用Feign可实现声明式REST调用,目的是让Web Service调用便捷。
- Feign整合了Ribbon和SpringMvc注解,使Feign客户端像一个Controller。
- Feign提供了HTTP请求的模板,通过编写简单的接口和插入注解,就可以定义好HTTP请求的参数、格式、地址等信息。
- 而Feign则会完全代理HTTP请求,我们只需要像调用方法一样调用它就可以完成服务请求及相关处理。
- Feign整合了Hystrix,可以很容易的实现服务熔断和降级。
2.为什么要使用Feign
当我们使用Ribbon作为客户端负载均衡,我们通过RestTemplate调用其他服务,所需的参数需要在请求的URL中进行拼接。如果有多个参数时,拼接请求字符串就会效率低下。而Fegin的服务调用,基于Ribbon进行封装,把负责的url和参数处理细节屏蔽,只需要简单编写Fiegn的客户端接口就可以像调用本地service去调用远程微服务。
3.Feign的编码实战
-
1.搭建基础项目结构,
-
2.注册到Eureka,
-
3.集成Feign向用户服务发起调用。
3.1.创建工程
springcloud-netflix-eureka 10010
springcloud-netflix-server-order 10020
springcloud-netflix-server-user 10030
springcloud-netflix-common 10040 //支付服务用来集成Feign
springcloud-netflix-server-pay 10050