Feign、OpenFeign、Spring Cloud Feign 的区别

·  阅读 209

Netflix Feign、OpenFeign

Feign 最开始是 Netflix 开源是一个组件, maven 坐标为

<dependency>
    <groupId>com.netflix.feign</groupId>
    <artifactId>feign-core</artifactId>
</dependency>
复制代码
  • 2013年6月 Netflix Feign 第一个版本 1.0.0 发布
  • 2016年7月 Netflix Feign 发布其最后一个版本8.18.0

2016年,NetflixFeign 捐献给社区,并改名为 OpenFeign, maven 坐标为

<dependency>
    <groupId>io.github.openfeig</groupId>
    <artifactId>feign-core</artifactId>
</dependency>
复制代码
  • 2016年7月 OpenFeign首个版本 9.0.0 发布,之后一直持续发布到现在

Spring Cloud Feign

Spring Cloud FeignSpringFeign 的封装,方便集成到 Spring 项目中,添加了对 Spring MVC 注释的支持,并简化了与负载均衡、服务注册发现、断路器等组件的集成

Feign 更名影响,Spring Cloud Feign 也有两个 starter

  • spring-cloud-starter-feign
  • spring-cloud-starter-openfeign

他俩的 maven 坐标如下

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-feign</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
复制代码

Spring Cloud Feign 发版历史

  • 2015年3月 spring-cloud-starter-feign 发布了 1.0.0.RELEASE 版本,依赖的 feign
<dependency>
    <groupId>com.netflix.feign</groupId>
    <artifactId>feign-core</artifactId>
    <version>7.1.0</version>
</dependency>
复制代码

image.png

  • 2016年7月 Netflix Feign 更名为 OpenFeign 并发布了更名后的首个版本 9.0.0

受更名事件影响,Spring Cloud 团队也为 OpenFeign 创建了一个区别于 Netflix Feignstarter —— spring-cloud-starter-openfeign

同时,为了帮助原来的 spring-cloud-starter-feign 用户逐步切换到新的 spring-cloud-starter-openfeign,原来的 spring-cloud-starter-feign 项目并没有立即停止发版,而是和 spring-cloud-starter-openfeign 共存了一段时间

  • 2016年9月,spring-cloud-starter-feign 将依赖从 Netflix Feign 改为 OpenFeig ,并发布了 1.2.0.RELEASE

image.png

  • 2017年11月,Spring Cloud 团队将两个 feign starter 进行"合并",发布了 spring-cloud-starter-openfeign首个版本 1.4.0.RELEASE,和 spring-cloud-starter-feign1.4.0.RELEASE 版本

从下面的依赖图中,可以看出,spring-cloud-starter-feign:1.4.0.RELEASE 其实就是 spring-cloud-starter-openfeign:1.4.0.RELEASE换皮

220513 145304.gif

  • 2019年5月23日 spring-cloud-starter-feign 发布了最后一个换皮版本 1.4.7.RELEASE,到此,过渡期也就结束了

220513 140007.gif

Feign 各版本总结

  • Feign 最开始是 Netflix 公司开源是一个组件

  • 2016年,NetflixFeign 捐献给社区,并改名为 OpenFeign

  • Spring Cloud Feign 是对 Feign 的封装,以方便在 Spring 环境中使用

    • spring-cloud-starter-feignSpring Cloud Feign 的早期版本,现已不在维护
    • spring-cloud-starter-openfeign 是目前正在使用中的 Spring Cloud Feign
分类:
后端
收藏成功!
已添加到「」, 点击更改