一、简介
Spring Cloud OpenFeign通过自动配置和Spring环境以及其他Spring编程模型习惯用法提供Spring Boot应用程序的集成。
Feign是一个声明性的Web服务客户端。它使编写Web服务客户端变得更容易。要使用Feign,请创建一个界面并对其进行注释。它具有可插入的注释支持,包括Feign注释和JAX-RS注释。Feign还支持可插拔编码器和解码器。Spring Cloud增加了对Spring MVC注释的支持,并使用了HttpMessageConverters
Spring Web中默认使用的注释。Spring Cloud集成了Ribbon和Eureka,在使用Feign时提供负载均衡的http客户端
Feign,假装、伪装。OpenFeign可以使消费者将提供者提供的服务名伪装为接口进行消费,消费者只需使用“Service接口 + 注解”的方式即可直接调用Service接口方法,而无需再使用RestTemplate了
二、OpenFeign与Feign
Spring Cloud D版及之前的版本使用的是Feign,而该项目现已更新为了OpenFeign。所以后续使用的依赖也发生了变化
三、Ribbon与OpenFeign
说到OpenFeign,不得不提的就是Ribbon。Ribbon是Netflix公司的一个开源的负载均衡项目,是一个客户端负载均衡器,运行在消费者端。
OpenFeign也是运行在消费者端的,使用Ribbon进行负载均衡,所以OpenFeign直接内置了Ribbon。即在导入OpenFeign依赖后,无需再专门导入Ribbon依赖了
声明式Rest客户端OpenFeign
https://cloud.spring.io/spring-cloud-openfeign/reference/html/
四、创建消费者工程03-consumer-feign-8080
(1) 创建工程
复制02-consumer-8080,并重命名为03-consumer-feign-8080
https://blog.csdn.net/u012965203/article/details/99098274
(2) 添加openfeign依赖
<!--feign依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
(3) 定义Service接口
(4) 修改处理器
(5) 修改配置文件
spring:
application:
name: abcmsc-consumer-depart
eureka:
client:
service-url:
defaultZone: http://localhost:8000/eureka
# defaultZone: http://eureka8100.com:8100/eureka,http://eureka8200.com:8200/eureka,http://eureka8300.com:8300/eureka
feign:
client:
config:
default:
connectTimeout: 5000 # 指定Feign客户端连接提供者的超时时限 取决于网络环境
readTimeout: 5000 # 指定Feign客户端从请求到获取到提供者给出的响应的超时时限 取决于业务逻辑运算时间
compression:
request:
enabled: true # 开启对请求的压缩
mime-types: text/xml, application/xml
min-request-size: 2048 # 指定启用压缩的最小文件大小
response:
enabled: true # 开启对响应的压缩
(6) 修改启动类
五、创建提供者工程03-provider-8081
(1)创建提供者工程03-provider-8081
复制工程02-provider-8081,并重命名为03-provider-8081
(2) 修改Service接口实现类
六、测试
(1)feign测试
(2)超时测试