SpringCloud-03-Feign负载均衡

上篇文章学完了Ribbon,接下来让我们学习一下Feign
前提:Feign内部集成了Ribbon,只不过是Java社区的人觉得java开发不应该是Ribbon这样的Rest风格,而应该是想java一样面向接口编程,所以Feign就被创造出来!

1|01.什么是Feign

Feign是声明式Web Service客户端,它让微服务之间的调用变得更简单,类似controller调用service。SpringCloud集成了Ribbon和Eureka,可以使用Feigin提供负载均衡的http客户端

2|02.Feign能干什么

  • Feign旨在使编写Java Http客户端变得更容易
  • 前面在使用Ribbon + RestTemplate时,利用RestTemplate对Http请求的封装处理,形成了一套模板化的调用方法。但是在实际开发中,由于对服务依赖的调用可能不止一处,往往一个接口会被多处调用,所以通常都会针对每个微服务自行封装一个客户端类来包装这些依赖服务的调用。所以,Feign在此基础上做了进一步的封装,由他来帮助我们定义和实现依赖服务接口的定义,在Feign的实现下,我们只需要创建一个接口并使用注解的方式来配置它(类似以前Dao接口上标注Mapper注解,现在是一个微服务接口上面标注一个Feign注解),即可完成对服务提供方的接口绑定,简化了使用SpringCloud Ribbon 时,自动封装服务调用客户端的开发量。

3|03.Feign的使用

  • 导入依赖
<!--Feign的依赖--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-feign</artifactId> <version>1.4.6.RELEASE</version> </dependency>
  • 编写API接口,供Feign调用

  • 使用@FeignClient(指出哪个服务开启负载均衡,然后一个方法映射一个请求)
    1

  • 调用api接口中的方法,完成请求的拼接,从而达到服务调用的效果!而策略的定义同Ribbon一样
    在这里插入图片描述

  • 开启Feign
    使用@EnableFeignClients(basePackages = {“com.sqx.springcloud”})//扫描我们feign管理的api接口,开启Feign
    在这里插入图片描述

4|04.Feign和Ribbon的总结:

Ribbon去服务调用的时候采用的是,通过服务名+写死路径去拼接形成另一个服务的url,从而实现调用,其偏向于Rest风格调用!

Feign则是调用接口的方法,映射请求去拼接从而完成调用,其偏向于我们Java的面向接口调用!


__EOF__

本文作者宋淇祥
本文链接https://www.cnblogs.com/qxsong/p/15837314.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   爪洼ing  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示