Feign 和 OpenFeign 的区别???openfeign的原理???

本文比较了Feign和OpenFeign在支持SpringMVC注解、扩展性、配置和与SpringCloud集成方面的差异,强调了OpenFeign在SpringCloud项目中的优势,尤其是其易用性和功能全面性。
摘要由CSDN通过智能技术生成

Feign 和 OpenFeign 的区别(精简记忆版)?

1.支持spring mvc 注解

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

详细版:

  1. 起源与归属

    • Feign:最初由 Netflix 开发,是 Netflix OSS(Open Source Software)套件的一部分,用于简化客户端对服务端接口的调用,尤其适用于 Spring Cloud 环境。
    • OpenFeign:Spring Cloud 团队在 Feign 的基础上进行了扩展和封装,将其整合到 Spring Cloud 生态中,形成了 OpenFeign。因此,OpenFeign 可以看作是 Feign 的一个 Spring Cloud 官方支持版本。
  2. 与 Spring MVC 的集成

    • Feign:原生的 Feign 并不直接支持 Spring MVC 的注解,如 @RequestMapping@GetMapping@PostMapping 等。
    • OpenFeign:OpenFeign 显著的特点是对 Spring MVC 注解的支持,开发者可以直接使用熟悉的 Spring MVC 注解来定义接口,增强了与 Spring 体系的融合度,降低了学习成本。
  3. 配置与扩展性

    • Feign:虽然提供了基本的负载均衡支持(通常通过内置的 Ribbon 实现),但其配置选项和扩展性相对有限。
    • OpenFeign:在 Feign 的基础上增加了更多配置选项,如超时设置、重试策略、熔断器(如与 Hystrix 集成)等,增强了服务调用的稳定性和容错能力。此外,OpenFeign 支持更丰富的扩展,如日志记录、监控、安全性增强等,便于与 Spring Cloud 生态中的其他组件如 Sleuth、Zuul、Eureka 等更好地集成。
  4. 使用便捷性

    • OpenFeign:由于紧密集成于 Spring Cloud,OpenFeign 可以利用 Spring 的自动配置和依赖注入机制,简化了配置和使用过程。开发者只需添加适当的注解和依赖,即可快速启用 OpenFeign 功能,无需手动创建和配置 Feign 客户端实例。

总结来说,OpenFeign 是对 Feign 的一次升级和优化,特别是在与 Spring 生态系统的集成、易用性、扩展性和配置灵活性方面做了显著改进。对于使用 Spring Cloud 构建微服务的项目来说,OpenFeign 通常是首选,因为它提供了更好的 Spring 兼容性和更为全面的功能集。而原始的 Feign 可能更适合那些不需要深度集成 Spring 或寻求更轻量级解决方案的项目。

openfeign的原理:

1、我们使用openfeign调用远程接口就像调用本地方法一样简单

2、支持spring mvc 注解

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

4、open Feign是基于aop的原理,他会通过所加@FeignClient的方法,自动拼接所调用服务的服务名或url,再动态代理生成对应的代理对象去执行所调用服务的方法(通过http进行请求与响应),之后会将响应体中的数据通过我们所自己设置的解码器反序列化成Java对象返回给本地服务。

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值