拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 Netflix Feign与OpenFeign之间的差异

Netflix Feign与OpenFeign之间的差异

白鹭 - 2021-11-24 514 0 0

1.概述

在本教程中,我们将描述Spring Cloud Netflix FeignSpring Cloud OpenFeign之间的区别。

2.Feign

Feign通过提供注解支持,使我们能够仅使用接口来实现客户端,从而使编写Web服务客户端变得更加容易。

Feign最初是由Netflix创建并发布的,这是其Netflix OSS项目的一部分。今天,它是一个开源项目。

2.1 Spring Cloud Netflix Feign

Spring Cloud Netflix将Netflix OSS产品集成到Spring Cloud生态系统中。其中包括Feign,Eureka,Ribbon和许多其他工具和实用程序。但是,Feign获得了自己的Spring Cloud Starter,以允许仅访问Feign。

2.2 OpenFeign

最终,Netflix决定停止在内部使用Feign并停止其开发。由于这一决定,Netflix在一个名为OpenFeign的新项目下将Feign完全转移到了开源社区。

幸运的是,它继续得到开源社区的大力支持,并且看到了许多新功能和更新。

2.3 Spring Cloud OpenFeign

与其前身相似,Spring Cloud OpenFeign将前身项目集成到Spring Cloud生态系统中。

方便地,此集成增加了对Spring MVC注释的支持,并提供了相同的HttpMessageConverters。

让我们将Spring Cloud OpenFeign中的Feign实现与使用Spring Cloud Netflix Feign的实现进行比较。

3.依存关系

首先,我们必须在我们的pom.xml文件中spring-cloud-starter-feignspring-cloud-dependencies

<dependency>

 <groupId>org.springframework.cloud</groupId>

 <artifactId>spring-cloud-starter-feign</artifactId>

 <versionId>1.4.7.RELEASE</versionID>

 </dependency>

 <dependency>

 <groupId>org.springframework.cloud</groupId>

 <artifactId>spring-cloud-dependencies</artifactId>

 <version>Hoxton.SR8</version>

 <type>pom</type>

 <scope>import</scope>

 </dependency>

请注意,该库仅适用于Spring Boot 1.4.7或更早版本。因此,我们的pom.xml必须使用任何Spring Cloud依赖项的兼容版本。

4.使用Spring Cloud Netflix Feign实施

现在,我们可以使用@EnableFeignClients @FeignClient任何接口的组件扫描。

对于我们使用Spring Cloud Netflix Feign项目开发的每个示例,我们都使用以下导入:

import org.springframework.cloud.netflix.feign.FeignClient;

 import org.springframework.cloud.netflix.feign.EnableFeignClients;

所有功能的实现对于旧版本和新版本都是完全相同的。

5.使用Spring Cloud OpenFeign实施

相比之下,我们的Spring Cloud OpenFeign教程包含与Spring Netflix Feign实施相同的示例。

唯一的区别是,我们的进口货来自不同的包装:

import org.springframework.cloud.openfeign.FeignClient;

 import org.springframework.cloud.openfeign.EnableFeignClients;

其他所有内容都是相同的,由于这两个库之间的关系,这不足为奇。

6.比较

从根本上讲,Feign的这两种实现是相同的。我们可以将这归因于Netflix Feign是OpenFeign的始祖。

但是,Spring Cloud OpenFeign包括Spring Cloud Netflix Feign中不可用的新选项和功能。

最近,我们获得了对MicrometerDropwizard MetricsApache HTTP Client 5Google HTTP client等的支持。

7.结论

本文比较了OpenFeign和Netflix Feign的Spring Cloud集成。像往常一样,您可以在GitHub上找到Spring Cloud OpenFeignNetflix Feign的资源

标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *