Feign 和 OpenFeign 的区别

 

Feign 和 OpenFeign 都是用来进行服务间调用的客户端库,它们旨在简化HTTP API客户端的编写过程,使得编写对外部服务的接口就像调用本地方法一样简单。尽管它们有相似之处,但也存在一些关键差异:

  1. 归属和演进

    • Feign 最初是由 Netflix 开发的,作为其微服务架构的一部分,用于简化 REST 客户端的创建。
    • OpenFeign 是 Spring Cloud 项目中的一个二级子项目,它是基于 Feign 进行了增强和定制,更紧密地与 Spring 生态系统集成。
  2. Spring MVC 注解支持

    • Feign 本身并不直接支持 Spring MVC 的注解,如 @RequestMapping@GetMapping@PostMapping 等。
    • OpenFeign 则支持这些 Spring MVC 注解,使得开发者能够利用熟悉的Spring注解风格来定义API接口,提高了代码的一致性和易读性。
  3. 依赖和使用方式

    • Feign 的依赖通常指 spring-cloud-starter-feign
    • OpenFeign 使用的依赖是 spring-cloud-starter-openfeign
    • 在实际应用中,你可能直接使用 spring-cloud-starter-openfeign 来集成 OpenFeign。
  4. 功能扩展

    • OpenFeign 提供了更多的功能和灵活性,比如通过 Java SPI (Service Provider Interface) 来选择或自定义 HTTP 客户端实现,以及对超时、重试、熔断器等更多配置选项的支持。
  5. 负载均衡

    • 两者都内置了 Ribbon 作为客户端负载均衡工具,但在使用和配置上,OpenFeign 由于与Spring Cloud的深度集成,可能提供了更加简便的配置方式。
  6. Spring Cloud 代际关系

    • OpenFeign 被视为 Spring Cloud 中服务间调用的第二代解决方案,相对于 Feign,它代表了Spring Cloud团队对服务调用客户端的进一步优化和官方推荐实践。

从上述对比表格可以看出,OpenFeign在支持Spring MVC注解、版本状态、集成Spring Cloud、动态代理、配置与扩展性等方面比Feign有所提升。OpenFeign是Spring Cloud团队在Feign基础上进行的扩展和封装,因此它更好地融入了Spring Cloud生态系统,特别是在Spring Boot 2.0及以上版本中得到了广泛的应用2。

结论是,如果你正在使用Spring Cloud构建微服务架构,建议使用OpenFeign,因为它提供了更好的集成和更多的配置选项,且得到活跃的维护和支持。如果你的项目还在使用较早版本的Spring Cloud,可能需要考虑使用Feign,但应注意Feign可能不会获得未来的更新和维护。

Feign 和 OpenFeign 的区别(简单记忆)

1.支持spring mvc 注解

2.整合了更多的扩展 (请求重试策略、超时控制、请求拦截器

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/595347.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

硬件设计计划与APQP

硬件设计的关键节点: 大的里程碑milestone分为: Kickoff->A Samples->做出第一批B样总成件->B Samples/OTS->C Samples->PPAP->SOP 具体到硬件,A/B/C sample阶段,又可细分为: 关键器件选型&硬件系统方案设计原理图绘制PCB LayoutA_BOM输出PCB制板…

3. 深度学习笔记--优化函数

深度学习——优化器算法Optimizer详解(BGD、SGD、MBGD、Momentum、Adagrad、Adadelta、RMSprop、Adam、Nadam、AdaMax、AdamW ) 0. GD (梯度下降) Gradient Descent(梯度下降)是一种迭代优化算法&#xf…

FreeRTOS内存管理(1-20)

FreeRTOS内存管理简介 在使用FreeRTOS创建任务,队列,信号量等对象时,一般都提供两种方法 1:动态创建任务(方法)自动地从FreeRTOS管理的内存堆中申请创建对象所需要的内存,并且在删除对象后可以…

九州金榜|孩子沉迷于网络:家庭教育的挑战与对策

随着时代的进步,科技的发展,网络现在成为了我们日常生活不可分割的一部分。然而,随着网络的普及也出现了一些列的问题,其中孩子沉迷于网络就是当前家长最为关心的问题,对于这种情况的发生,家庭教育就显得尤…

Linux主机重启后报错:[FAILED] Failed to start Switch Root.

一、问题描述 某次云主机因计费问题,导致批量重启,重启后发现某台云主机竟进入紧急救援模式(emergency模式),如下所示: 二、原因及处理 1)原因:加载根分区失败,导致无…

Libcity笔记:原子文件

1 介绍 Libcity中的数据以原子文件的形式存在 2 原子文件类别 对于不同的交通预测任务,可能用到不同的原子文件,同一个数据集不一定包含全部六种原子文件 网格数据需要按照先行后列的顺序遍历OD数据需要按照先起点后终点的顺序遍历 2.1 geo 存储地理…

Netty 实现dubbo rpc

一、RPC 的基本介绍 RPC (Remote Procedure Call) 远程过程调用,是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外的为这个交互编程。也就是说可以达到两个或者多个应用程序部署在不同的服务器上&…

OpenCV 入门(七)—— 身份证识别

OpenCV 入门系列: OpenCV 入门(一)—— OpenCV 基础 OpenCV 入门(二)—— 车牌定位 OpenCV 入门(三)—— 车牌筛选 OpenCV 入门(四)—— 车牌号识别 OpenCV 入门&#xf…

德国韦纳WENAROLL滚压刀,液压缸,滚光刀,挤压刀,滚轧刀

德国韦纳WENAROLL滚压刀,液压缸,滚光刀,挤压刀,滚轧刀(百度一下,西安尚融) 德国韦纳(WENAROLL)的滚压刀、液压缸、滚光刀、挤压刀和滚轧刀在工业领域享有很高的声誉,这些产品因其高…

SM618卡件SM480模块和利时

SM618卡件❗电:183-6998-1851❗SM480模块和利时。自动化程度的提高,I/O点数大幅增 加,传统单一配线的方式已经无法满足发展的需 要SM618卡件SM480模块和利时。.对简单、可靠的配线方式的需求日益强烈. 传统接线 - 以并联方式连 接…

C# WinForm —— 12 ListBox绑定数据

ListBox加载大量数据时,避免窗体闪烁的方法: 在加载语句的前后分别加上 BeginUpdate()方法 和 EndUpdate()方法 指定一个集合为绑定的数据源 1. 首先,右键项目,添加类 2. 在新建的类文件中添加属性值信息 3. 构建初始化的对象…

访问学者在外访学期间,是否可以中途回国?

在全球化的今天,访问学者制度已成为促进国际学术交流与合作的重要桥梁。然而,对于许多国外访问学者来说,一个常见的问题是:在访学期间,我是否可以中途回国?这个问题涉及到多个方面,包括政策法规…

7步教程从零开始搭建跨境电商平台开发

跨境电商平台开发一直是创业者们追逐的热门领域之一。本文将为您提供一个7步教程,帮助您从零开始搭建跨境电商平台,让您在这个充满机遇的领域中抢占先机。 步骤一:市场调研和定位 在开始搭建跨境电商平台之前,第一步是进行充分的…

大数据与会计专业主要学什么课程

大数据与会计专业是一个结合了传统会计知识与现代大数据技术的交叉学科,旨在培养既懂会计又熟悉大数据分析的复合型人才。该专业的学生将会学习以下主要课程内容: 会计基础课程:包括基础会计、财务会计、成本会计、管理会计等,这些…

我独自升级崛起下载教程 我独自升级崛起怎么一键下载

定于5月8日全球盛大发布的动作RPG力作《我独自升级崛起》,基于备受追捧的同名动画及网络漫画,誓为热情洋溢的游戏爱好者们呈献一场深度与广度兼具的冒险盛宴。这款游戏巧妙融合网络武侠元素,其创意十足的设计框架下,核心叙述聚焦于…

OSPF综合实验(超详细易懂)(HCIP)

1、拓扑信息 2、需求分析 3、IP规划 4、配置 5、测试 1、拓扑信息 2、需求分析 R4为ISP,其上只能配置I地址; R4与其他所有直连设备间均使用公有IP 公网中使用的是点到…

外贸大客户开发的三大困境

外贸大客户开发的三大困境,第一个是进不来,什么叫进不来呢?就是客户,大客户他不仅能够为企业带来大额的业绩,而且利润也高,那么也对于这种品牌也有一定的关联,还能为企业带来更多的一些资源&…

Python测试框架Pytest的参数化详解

上篇博文介绍过,Pytest是目前比较成熟功能齐全的测试框架,使用率肯定也不断攀升。 在实际工作中,许多测试用例都是类似的重复,一个个写最后代码会显得很冗余。这里,我们来了解一下pytest.mark.parametrize装饰器&…

karateclub,一个超酷的 Python 库!

更多资料获取 📚 个人网站:ipengtao.com 大家好,今天为大家分享一个超酷的 Python 库 - karateclub。 Github地址:https://github.com/benedekrozemberczki/karateclub Python karateclub是一个用于图嵌入和图聚类的库&#xff…

git commit 提交报错pre-commit hook failed (add --no-verify to bypass) 解决方法,亲测有效

问题截图 今天在执行 git commit 命令时报错:pre-commit hook failed (add --no-verify to bypass) 解决 参考文章:git commit报错:pre-commit hook failed的解决方法 具体原理什么的就不解释了,可以看看上面的参考文章 解决方…
最新文章