基于springcloud搭建项目-Feign篇
Posted 十二余
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于springcloud搭建项目-Feign篇相关的知识,希望对你有一定的参考价值。
上一篇已经写过ribbon客户端负载均衡的用法了,这篇主要是介绍feign的用法,首先我们必须了解feign是什么?能干嘛?怎么用?
这里简单介绍一下,然后进行代码测试
1、概述
Feign是一个声明式的web服务客户端,使得编写Web服务客户端变得非常容易,只需要创建一个接口,然后在上面添加注解即可。
2、能干嘛
前面在使用Ribbon+RestTemplate时,利用RestTemplate对http请求的封装处理,形成了一套模板化的调用方法。但是在实际开发中,由于对服务依赖的调用可能不止一处,往往一个接口会被多出调用,所以通常都会针对每个微服务自行封装一些客户端类来包装这些依赖服务的调用。所以,Feifn在此基础上做了进一步封装,有他来帮助我们定义和实现依赖服务接口的定义。在Feign的实现下,我们只需创建一个接口并使用注解的方式来配置它(以前是Dao接口上标注Mapper注解,现在是一个微服务接口上面注解一个Feign注解即可),即可完成对服务提供方的接口绑定,简化了使用Spring cloud Ribbon时,自动封装服务调用客户端的开发量
3、怎么用
(1)、首先,添加pom.xml中的依赖,在study-web和study-ms中同时都加入Feign的依赖
注:stusy-web和study-ms都是沿用上几篇搭建的项目,不知道的往上几篇翻翻
(2)、 在study-ms的服务里添加查询方法
controller层
service层
mapper层
有关sql的配置是
(3)、在study-api服务中添加接口,加上@FeignClient的注解,name 的是服务名
(4)、在study-web中添加测试方法
在study-web的启动类上添加注解@EnableFeignClients
4、测试
启动study-eureka(8001)、study-ms(8003)、study-web(8002)
通过postman测试接口,结果为:
总结-feign和ribbon
Feign集成了Ribbon
利用Ribbon维护了MicroServiceCloud-Dept的服务列表信息,并且通过轮询实现了客户端的负载均衡,而与Ribbon不同的是,通过Feign只需要定义服务绑定接口且以声明式的方法,优雅而简单的实现了服务调用
Feign通过接口的方法调用Rest服务(之前是Ribbon+RestTemplate),
该请求发送给Eureka服务器(http://MICROSERVICECLOUD-DEPT/dept/list),
通过Feign直接找到服务接口,由于在进行服务调用的时候融合了Ribbon技术,所以也支持负载均衡作用。
以上是关于基于springcloud搭建项目-Feign篇的主要内容,如果未能解决你的问题,请参考以下文章
教程SpringCloud+Nacos+Feign+Gateway搭建教程(推荐)
SpringCloud+Eureka+Feign+Ribbon的简化搭建流程,加入熔断,网关和Redis缓存[2]
Java之 Spring Cloud 微服务搭建 Feign组件(第二个阶段)SpringBoot项目实现商品服务器端是调用
Java之 Spring Cloud 微服务搭建 Feign组件(第二个阶段)SpringBoot项目实现商品服务器端是调用