对比 Netflix Feign 和 OpenFeign

29 篇文章 2 订阅
4 篇文章 0 订阅

对比 Netflix Feign 和 OpenFeign

本文主要描述介绍 Netflix Feign 和 OpenFeign 之间的差异,并比较一下Spring Cloud OpenFeign和使用Spring Cloud Netflix Feign的实现方式。

1. Feign

Feign提供注解支持,仅通过接口实现客户端,使得写web服务客户端更加容易。最早Feign是有Netflix 公司发布,作为Netflix OSS项目一部分。现在Feign已经是开源项目。

1.1 增加依赖

首先在pom.xml中增加spring-cloud-starter-feign 和 spring-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依赖。

1.2 使用Spring Cloud Netflix Feign

现在能使用@EnableFeignClients 注解启用组件扫描使用了@FeignClient注解的接口。在项目中使用Spring Cloud Netflix Feign需要导入下面包:

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

新旧版本的所有特性实现都是一样。

2. OpenFeign

Spring Cloud Netflix Feign在Spring Cloud中集成Netflix OSS。其中包括Feign, Eureka, Ribbon等一系列其他工具。但Feign有自己的pring Cloud Starter,用户可以仅仅使用Feign。

后来Netflix内部不在使用Feign并停止更新,为此Netflix把Feign提交给开源社区,命名为OpenFeign。幸运的是,该项目受到开源社区的巨大支持并增加了很多新的特性和更新。

和它的前任类似,Spring Cloud OpenFeign整合前任项目至Spring Cloud生态。该整合增加了对Spring mvc注解的支持、并提供相同的HttpMessageConverters。

2.1 使用Spring Cloud OpenFeign

与使用Feign类似,仅导入包有差异:

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.EnableFeignClients;

其他内容都是一样,这并不奇怪,因为这两个库之间存在关系。

3. 总结

从根本上说这两种实现是相同的,这可归因于Netflix Feign是OpenFeign的始祖。然而Spring Cloud OpenFeign包含了在Spring Cloud Netflix Feign上没有的新特性和功能,如r Micrometer, Dropwizard Metrics, Apache HTTP Client 5, Google HTTP client等。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值