SpringCloud OpenFeign
1.OpenFeign 介绍
1.OpenFeign 是什么
-
OpenFeign 是个声明式 WebService 客户端,使用 OpenFeign 让编写 Web Service 客户端 更简单
-
它的使用方法是定义一个服务接口然后在上面添加注解
-
OpenFeign 也支持可拔插式的编码器和解码器。
-
Spring Cloud 对 OpenFeign 进 行 了 封 装 使 其 支 持 了 Spring MVC 标 准 注 解 和 HttpMessageConverters
-
OpenFeign 可以与 Eureka 和 Ribbon 组合使用以支持负载均衡
地址: openFeign官网
3.Feign 和 OpenFeign 区别
Feign
1.Feign是Spring Cloud组件中的一个轻量级RESTful的HTTP服务客户端 2.Feign内置了Ribbon,用来做客户端负载均衡,去调用服务注册中心的服务。
3.Feign的使用方式是:使用Feign的注解定义接口,调用服务注册中心的服务
4.Feign本身不支持Spring MVC的注解,它有一套自己的注解
5.引入依赖
<dependencies> <dependency> <groupId>io.github.openfeign</groupId> <artifactId>feign-bom</artifactId> <version>??feign.version??</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies>
OpenFeign
1.OpenFeign是Spring Cloud 在Feign的基础上支持了Spring MVC的注解,如 @RequesMapping等等。
2.OpenFeign的@FeignClient可以解析SpringMVC的@RequestMapping注解下的接口
3.OpenFeign通过动态代理的方式产生实现类,实现类中做负载均衡并调用其他服务
4.引入依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency>
精简一句话:OpenFeign 就是在 Feign 基础上做了加强 , 有些程序员为了方便,说 Feign 就是指的 OpenFeign
2.OpenFeign-应用实例
1.需求分析/图解
– 示意图
2.创建服务消费模块 -通过 OpenFeigen 实现远程调用的三种方式
1.通过注册中心服务发现实现远程调用
1.参考 member-service-consumer-80 创建 member-service-consumer-openfeign-80模块
2.修改 pom.xml,引入openfeign依赖
<!--引入openfeign场景启动器--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency>
3.创建 application.yml 内容如下:
server: port: 80 spring: application: name: member-service-consumer-openfeign-80 #配置eureka-client eureka: client: #将自己注册到eureka-server register-with-eureka: true #表示从eureka-server获取注册信息 #如果是单节点是可以不配置的,但如果是集群则必须配置为true,才能配合Ribbon实现负载均衡功能 fetch-registry: true ser