Spring Cloud中使用OpenFeign

一、简介Spring Cloud中使用OpenFeign_第1张图片

Spring Cloud OpenFeign通过自动配置和Spring环境以及其他Spring编程模型习惯用法提供Spring Boot应用程序的集成。

Spring Cloud中使用OpenFeign_第2张图片

Feign是一个声明性的Web服务客户端。它使编写Web服务客户端变得更容易。要使用Feign,请创建一个界面并对其进行注释。它具有可插入的注释支持,包括Feign注释和JAX-RS注释。Feign还支持可插拔编码器和解码器。Spring Cloud增加了对Spring MVC注释的支持,并使用了HttpMessageConvertersSpring Web中默认使用的注释。Spring Cloud集成了Ribbon和Eureka,在使用Feign时提供负载均衡的http客户端

Feign,假装、伪装。OpenFeign可以使消费者将提供者提供的服务名伪装为接口进行消费,消费者只需使用“Service接口 + 注解”的方式即可直接调用Service接口方法,而无需再使用RestTemplate了

二、OpenFeign与Feign

Spring Cloud D版及之前的版本使用的是Feign,而该项目现已更新为了OpenFeign。所以后续使用的依赖也发生了变化

Spring Cloud中使用OpenFeign_第3张图片

三、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依赖



	org.springframework.cloud
	spring-cloud-starter-openfeign

(3) 定义Service接口

Spring Cloud中使用OpenFeign_第4张图片

(4) 修改处理器

Spring Cloud中使用OpenFeign_第5张图片

(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) 修改启动类

Spring Cloud中使用OpenFeign_第6张图片

五、创建提供者工程03-provider-8081

(1)创建提供者工程03-provider-8081

复制工程02-provider-8081,并重命名为03-provider-8081

(2) 修改Service接口实现类

Spring Cloud中使用OpenFeign_第7张图片

六、测试

(1)feign测试

Spring Cloud中使用OpenFeign_第8张图片

(2)超时测试

Spring Cloud中使用OpenFeign_第9张图片

你可能感兴趣的:(Spring,Cloud)