Feign入门

简介: Feign入门

1、简介

Feign是一个REST客户端库,它通过接口驱动的方式来定义REST客户端。Spring Cloud Netflix体系中的Eureka服务注册中心客户端支持Ribbon客户端负载均衡器,而Feign本质上是Ribbon的包装,其内部是通过Ribbon来进行服务查找和负载均衡。 在Spring Cloud Netflix体系中,我们通常会通过以下两种方式进行服务通信:


支持负载均衡的RestTemplate


Feign生成的客户端接口


两种方式都是通过Ribbon进行服务查找,然后更加负载均衡策略选择服务进行服务通信,具体使用那种方式看个人爱好(小捌觉得Feign客户端接口这种方式,在代码上稍显复杂,但是更好管理)。


关于Feign的一点小知识: 大家经常听到有人说OpenFeign,有人说Feign,给人一种好像是两个东西的错觉。其实是因为Feign本身也是Netflix的开源项目,后面独立出来单独做了开源项目,改名为OpenFeign。这种情况其实很常见,比如鸿蒙-HarmonyOS就有Open HarmonyOS。


2、正文

正式开始Feign的学习之前,大家需要对微服务有一定的认识,关于这些知识点可以查看本专栏的往期文章,入门微服务、Eureka相关知识,并且搭建一个Eureka服务和客户端之后在来学习Feign。


2.1 服务搭建

搭建一个Eureka Server用于服务注册发现,此外准备两个相同的服务提供者SERVER和一个服务消费者CONSUMER,整体的服务如下所示:

image.pngimage.pngimage.pngimage.pngimage.png2.4 总结

这篇文章入门了Feign,也顺带讲了下RestTemplate的简单使用。需要注意的是Fegin它并不负责解析服务名、负载均衡,这些都是其集成的Ribbon实现的。Feign可以替代RestTemplate,相比之下代码的可读性确实增强了,但是整体性能是有些许下降的。


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
目录
相关文章
|
Oracle 关系型数据库 流计算
Flink CDC不支持直接连接到Oracle ADG备库进行数据同步
Flink CDC不支持直接连接到Oracle ADG备库进行数据同步
862 1
|
机器学习/深度学习 API 开发工具
|
人工智能 自然语言处理 算法
如何利用【抖音-豆包】进行文章撰写与技能学习
如何利用【抖音-豆包】进行文章撰写与技能学习
943 1
|
JSON 安全 fastjson
高性能 JSON 处理:为何选择 Fastjson?
Fastjson 是由阿里巴巴集团开发的一个高性能的 JSON 处理库,它支持 Java 对象与 JSON 字符串之间的互相转换。
2620 0
高性能 JSON 处理:为何选择 Fastjson?
|
前端开发 开发者
CSS的声明
CSS的声明
|
Java 测试技术
slf4j的log.warn()的参数问题研究
slf4j的log.warn()的参数问题研究
765 0
slf4j的log.warn()的参数问题研究
|
SQL 供应链 搜索推荐
案例解析|餐饮行业如何让数字价值收益最大化
020年突如其来的新冠肺炎疫情,对餐饮业的打击首当其冲。据2月12日中国烹饪协会发布的《2020年新冠肺炎疫情对中国餐饮业影响报告》,相比去年春节,疫情期间,78%的餐饮企业营收损失达100%以上;9%的企业营收损失达到九成以上;7%的企业营收损失在七成到九成之间;营收损失在七成以下的仅为5%。这次疫情之变,将会改变很多消费形态,有的其实一直在变化,只是这次之后会加速;有的可能我们还没有想到过,因为疫情,也会带来一些新的变化。本篇文章将以企业A全面上云为案例,详解上云带来的核心价值以及上云方案和步骤,希望能给您的业务带来一定帮助。
576 0
案例解析|餐饮行业如何让数字价值收益最大化
云联云通讯报错:应用与模板id不匹配,解决方法
应用与模板id不匹配 这种一般是后端服务器上配置的APP ID和模板ID所属的APP不一致造成的   找到发送模板短信的方法,修改appID即可如何联系我:【万里虎】www.bravetiger.cn 【QQ】3396726884 (咨询问题100元起,帮助解决问题500元起) 【博客】http://www.
1584 0