SpringCloud之Feign组件

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 20:42   1487   0

目录

什么是Feign

回顾基于Http的RestTemplate远程调用方式

Feign的使用


什么是Feign

Feign的目的是让编写Java Http请求客户端变得更容易。之前我们用Ribbon+RestTemplate对http请求进行封装,形成一套模板化的调用方法。但实际开发中,由于对服务依赖的调用不只一处,往往一个接口被多次调用所以通常都会针对每个微服务自行封装一些客户端类来包装这些依赖服务的调用。Feign正是在此基础上的封装组件。在Feign的实现下,我们只需要创建一个接口并使用注解的方式来配置,类似于之前Dao接口上的Mapper注解,现在是在微服务接口类上标注一个Feign注解即可。这种方式简化了Ribbon的同时,自动封装了服务调用客户端的代码量

Feign集成了Ribbon。通过轮询实现了客户端的负载均衡

回顾基于Http的RestTemplate远程调用方式

之前我们单纯使用RestTemplate需要每个请求都拼接url+参数+类文件。

https://blog.csdn.net/Delicious_Life/article/details/106216290

Feign的使用

在调用方和被调用方项目中分别导入feign的包

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-feign</artifactId>
            <version>1.4.6.RELEASE</version>
        </dependency>

在调用方中新建一个Feign包,里面写被调用方对应的接口。注意需要使用@FeignClient来标识被调用方是哪个微服务。

需要确保被调用方存在上述/dept/list等方法

在调用方的启动类上添加注解扫描

启动项目,客户端的代码风格和正常的Restful风格无异,相比Ribbon代码更清晰易懂了。

同时也可以在ConfigBean类中配置负载均衡策略,同样实现了负载均衡~

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP