0
点赞
收藏
分享

微信扫一扫

【Spring Cloud】使用 Feign 优雅地调用 HTTP API:Feign 详细介绍、使用步骤


前言:本文主要内容学习自教程视频:https://www.bilibili.com/video/BV1jJ411S7xr?p=13

文章目录

  • ​​1 Feign 详细介绍​​
  • ​​2 Feign 能做什么​​
  • ​​3 Feign 集成了 Ribbon​​
  • ​​4 Feign 使用步骤​​

1 Feign 详细介绍

Feign 是声明式的 web service 客户端,它让微服务之间的调用变得更简单了,类似controller调用service。Feign 是 Netflix 开发的声明式、模板化的HTTP客户端, Feign可以帮助我们更快捷、通过面向接口和注解的方式、优雅地调用HTTP API。

Spring Cloud集成了Ribbon和Eureka,可在使用Feign时提供负载均衡的http客户端。只需要创建一个接口,然后添加注解即可。

Feign 的出现的原因 ,主要是社区中大家都习惯面向接口编程。这个是很多开发人员的规范。Feign 的作用是替代 RestTemplate,性能比较低,但是可以使代码可读性很强。

Feign 通过接口的方法调用Rest服务 ( 之前是Ribbon+RestTemplate,可参考文章:​​【Spring Cloud】详解 Ribbon:负载均衡、多种负载均衡算法的选取、自定义负载均衡算法​​ ),该请求发送给Eureka服务器 (例如,发送请求:http://MICROSERVICECLOUD-PROVIDER-DEPT/dept/list)通过Feign直接找到服务接口,由于在进行服务调用的时候融合了Ribbon技术,所以也支持负载均衡作用( Feign 其实不是做负载均衡的,负载均衡是Ribbon的功能,Feign 只是集成了Ribbon而已,但是负载均衡的功能还是Feign 内置的Ribbon再做,而不是Feign )。

因此 Feign 的出现,使得调用微服务访问有了两种方法:1. 微服务名字 【使用 Ribbon】2. 接口和注解 【使用 Feign 】

2 Feign 能做什么

【Spring Cloud】使用 Feign 优雅地调用 HTTP API:Feign 详细介绍、使用步骤_负载均衡

3 Feign 集成了 Ribbon

【Spring Cloud】使用 Feign 优雅地调用 HTTP API:Feign 详细介绍、使用步骤_微服务_02

4 Feign 使用步骤

(注:本文章的项目部分是根据此系列的前几篇文章中的项目来循序渐进地改动过来的,因此,下文中提到的另外几个模块项目,可去之前文章中查看,太占篇幅,不可能全列出来,或直接去看本文开头链接中的视频教程)

1、参考本系列文章之前的使用 Ribbon 的服务消费者模块 springcloud-consumer-dept-ribbon-80(或是 8002 模块,视频教程里的服务消费者是 80 模块,我自己练习时用的是 8002 模块,这里由于我一开始的随意,导致了后来写文章的各种别扭,就先说明一下吧)

2、新建springcloud-consumer-dept-feign-80

  • 修改主启动类名称
  • 将springcloud-consumer-dept-80的内容都拷贝到 feign项目中
  • 删除myrule文件夹
  • 修改主启动类的名称为 DeptConsumerFeign80

3、springcloud-consumer-dept-feign-80修改pom.xml , 添加对Feign的支持。

<!--Feign相关-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
<version>1.4.7.RELEASE</version>
</dependency>

4、修改springcloud-api工程,同样在 pom 中添加上述 Feign 的依赖,并新建一个Service包

【Spring Cloud】使用 Feign 优雅地调用 HTTP API:Feign 详细介绍、使用步骤_java_03


编写接口 DeptClientService,并增加新的注解@FeignClient(其实这里既然有请求映射了,那应该属于 Controller 层,但此教程里可能也是为了侧重微服务中“服务”这词的,因此,将此服务提供者模块直接写成在服务层处理映射)

【Spring Cloud】使用 Feign 优雅地调用 HTTP API:Feign 详细介绍、使用步骤_spring_04


5、在消费者模块 springcloud-consumer-dept-feign-80 工程修改Controller,添加上一步新建的DeptClientService

【Spring Cloud】使用 Feign 优雅地调用 HTTP API:Feign 详细介绍、使用步骤_负载均衡_05

6、microservicecloud-consumer-dept-feign工程修改主启动类,开启Feign使用

(个人认为这个包扫描不用单独指定,多余)

【Spring Cloud】使用 Feign 优雅地调用 HTTP API:Feign 详细介绍、使用步骤_java_06


7、测试(注:三个注册中心模块是本系列上个文章中的项目内容,可去前几篇文章查看)

【Spring Cloud】使用 Feign 优雅地调用 HTTP API:Feign 详细介绍、使用步骤_微服务_07


【Spring Cloud】使用 Feign 优雅地调用 HTTP API:Feign 详细介绍、使用步骤_负载均衡_08


举报

相关推荐

0 条评论