Kevin's blog Kevin's blog
首页
  • AI基础
  • RAG技术
  • 提示词工程
  • Wireshark抓包
  • 常见问题
  • 数据库
  • 代码技巧
  • 浏览器
  • 手册教程
  • 技术应用
  • 流程规范
  • github技巧
  • git笔记
  • vpn笔记
  • 知识概念
  • 学习笔记
  • 环境搭建
  • linux&运维
  • 微服务
  • 经验技巧
  • 实用手册
  • arthas常用
  • spring应用
  • javaAgent技术
  • 网站
友情链接
  • 分类
  • 标签
  • 归档

Kevin

你可以迷茫,但不可以虚度
首页
  • AI基础
  • RAG技术
  • 提示词工程
  • Wireshark抓包
  • 常见问题
  • 数据库
  • 代码技巧
  • 浏览器
  • 手册教程
  • 技术应用
  • 流程规范
  • github技巧
  • git笔记
  • vpn笔记
  • 知识概念
  • 学习笔记
  • 环境搭建
  • linux&运维
  • 微服务
  • 经验技巧
  • 实用手册
  • arthas常用
  • spring应用
  • javaAgent技术
  • 网站
友情链接
  • 分类
  • 标签
  • 归档
  • 微服务架构筑基础
  • Feign支持BasicAuth验证
  • Feign与OpenFeign
    • 一、Netlix Feign
    • 二、 Netflix Feign还是Open Feign?
    • 二、Spring Cloud Feign还是Spring Cloud OpenFeign?
  • Feign请求压缩与超时等配置
  • OAUTH2.0协议
  • 分布式配置中心-apollo

  • alibaba-nacos

  • 微服务
kevin
2022-06-13
目录

Feign与OpenFeign

# Feign与OpenFeign

其实OpenFeign的使用方式就是@FeignClients注解加上Spring MVC注解的方式书写“伪装”接口函数,然后在业务需要的地方像使用本地方法一样调用接口函数。

实际上在OpenFeign出现之前,有一个阶段,开发者经常使用的是Netflix Feign。二者在使用方式、版本集成方面还是有一些差异性。本篇就为大家介绍一下。

# 一、Netlix Feign

  • Feign是Spring Cloud组件中的一个轻量级RESTful的HTTP服务客户端
  • Feign内置了Ribbon,用来做客户端负载均衡,去调用服务注册中心的服务。
  • Feign的使用方式是:使用Feign的注解定义接口,调用这个接口,就可以调用服务注册中心的服务
  • Feign本身不支持Spring MVC的注解,它有一套自己的注解。Feign的注解和用法请参考官方文档:https://github.com/OpenFeign/feign

下图中注释掉的部分是Feign的注解书写方式,没有注释掉的注解是Spring MVC的注解方式。显然,Spring MVC的注解我们使用起来更加统一、方便、常用。所以下文中的注释掉的这种注解的书写方式了解即可,已经没有必要学习使用了。

img

因为Feign在一些方面与Spring MVC常用习惯的兼容性不够好,Feign又是属于netflix的产品,该公司对于Spring Cloud社区的支持也逐渐减弱。所以Spring Cloud社区基于各种原因在Feign的基础上开发了OpenFeign。 img

# 二、 Netflix Feign还是Open Feign?

1、maven坐标差异:

<dependency>
    <groupId>com.netflix.feign</groupId>
    <artifactId>feign-core</artifactId>
</dependency>

<dependency>
    <groupId>io.github.openfeign</groupId>
    <artifactId>feign-core</artifactId>
</dependency>
1
2
3
4
5
6
7
8
9

2、官网地址差异:https://github.com/Netflix/feign和https://github.com/OpenFeign/feign。不过现在访问https://github.com/Netflix/feign前者已经被重定向到了后者上。

3、发版历史:

  • Netflix Feign:1.0.0发布于2013.6,于2016.7月发布其最后一个版本8.18.0
  • Open Feign:首个版本便是9.0.0版,于2016.7月发布,然后一直持续发布到现在(未停止)

可以简单的理解:Netflix Feign仅仅只是改名成为了Open Feign而已,然后Open Feign项目在其基础上继续发展至今。9.0版本之前它叫Netflix Feign,自9.0版本起它改名叫Open Feign了。

# 二、Spring Cloud Feign还是Spring Cloud OpenFeign?

1、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>
1
2
3
4
5
6
7
8
9

2、发版历史:

  • spring-cloud-starter-feign:2015.3发布1.0.0版本,2019.5.23发布器最后一个版本1.4.7.RELEASE
  • spring-cloud-starter-openfeign:2017.11发布其首个版本,版本号为:1.4.0.RELEASE。现在仍持续更新中,当下最新版为2.2.1.RELEASE

对于版本,可粗略的理解为:

  • spring-cloud-starter-openfeign是为Spring Cloud2.x准备的,只不过维持了一段时间的对1.x的兼容。
  • 而spring-cloud-starter-feign是专为Spring Cloud1.x服务。
上次更新: 2022/06/13, 18:30:58
Feign支持BasicAuth验证
Feign请求压缩与超时等配置

← Feign支持BasicAuth验证 Feign请求压缩与超时等配置→

最近更新
01
AI是如何学习的
06-03
02
提示词工程实践指南
06-03
03
chatGpt提示原则
06-03
更多文章>
| Copyright © 2022-2025 Kevin | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式