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.整合了更多的扩展 (请求重试策略、超时控制、请求拦截器

  • 25
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值