feign与openfeign区别(openfeign和ribbon)

Ribbon Feign和OpenFeign的区别是什么

style="text-indent:2em;">大家好,feign与openfeign区别相信很多的网友都不是很明白,包括feign不建议使用也是一样,不过没有关系,接下来就来为大家分享关于feign与openfeign区别和feign不建议使用的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

本文目录

  1. feign有几种使用方法
  2. feign与openfeign区别
  3. FeignClient优点
  4. feignclient ipv6缺少中括号

feign有几种使用方法

Feign是一个声明式的WebService客户端。它的出现使开发WebService客户端变得很简单。使用Feign只需要创建一个接口加上对应的注解,比如:@FeignClient注解。Feign有可插拔的注解,包括Feign注解和AX-RS注解。Feign也支持编码器和解码器,SpringCloudOpenFeign对Feign进行增强支持SpringMvc注解,可以像SpringWeb一样使用HttpMessageConverters等。

??Feign是一种声明式、模板化的HTTP客户端。在SpringCloud中使用Feign,可以做到使用HTTP请求访问远程服务,就像调用本地方法一样的,开发者完全感知不到这是在调用远程方法,更感知不到在访问HTTP请求。接下来介绍一下Feign的特性,具体如下:

可插拔的注解支持,包括Feign注解和AX-RS注解。

支持可插拔的HTTP编码器和解码器。

支持Hystrix和它的Fallback。

支持Ribbon的负载均衡。

支持HTTP请求和响应的压缩。Feign是一个声明式的WebService客户端,它的目的就是让WebService调用更加简单。它整合了Ribbon和Hystrix,从而不需要开发者针对Feign对其进行整合。Feign还提供了HTTP请求的模板,通过编写简单的接口和注解,就可以定义好HTTP请求的参数、格式、地址等信息。Feign会完全代理HTTP的请求,在使用过程中我们只需要依赖注入Bean,然后调用对应的方法传递参数即可。

feign与openfeign区别

Feign和OpenFeign都是Java开发中的HTTP客户端工具,它们都可以使用注解和接口定义HTTP请求和响应,将HTTP请求转变为Java方法调用,并简化HTTP客户端调用的过程。它们的主要区别如下:

1.项目来源和维护者不同:Feign是由Netflix公司开发和维护的,而OpenFeign则是由SpringCloud团队基于Feign开发和维护的。

2.基于的HTTP客户端不同:Feign基于URLConnection进行开发,而OpenFeign则基于Spring的RestTemplate和HttpClient进行开发,因此OpenFeign更加适合在SpringCloud微服务框架中使用。

3.支持的注解和功能不同:OpenFeign在Feign的基础上增加了对SpringCloudLoadbalancer的支持,可以自动地对请求进行负载均衡;同时,OpenFeign还提供了对Ribbon、Hystrix等框架的集成支持,并可以使用Feign自定义注解来扩展请求和响应的功能。

4.SpringCloud版本和兼容性不同:OpenFeign是SpringCloud的组件之一,对于SpringCloud的版本和兼容性进行了优化和适配;而Feign并不是SpringCloud的一部分,因此在使用时需要自行进行版本和兼容性的适配。

综上所述,Feign和OpenFeign在功能和使用上很相似,但其项目来源、基于的HTTP客户端、注解和功能的支持以及SpringCloud版本和兼容性等方面存在差异。开发者可以根据具体的需求选择合适的工具来使用。

FeignClient优点

Feign是一个声明web服务客户端,这便得编写web服务客户端更容易,使用Feign创建一个接口并对它进行注解,它具有可插拔的注解支持包括Feign注解与JAX-RS注解,Feign还支持可插拔的编码器与解码器,支持拦截器,支持日志,支持重试,相较于HTTPClient多了一种概念,面向接口。

所有的请求服务都存放在对应的FeignClient接口中。类似于一种模板调用。

省去了大量冗余在配置文件写的的URL配置项,而且直接以接口形式来展示远端的请求,配合合理的日志打印,可以直观的发现服务调用的过程,及参数。便于排查。

feignclient ipv6缺少中括号

缺少中括号因为在IPv6地址中,IP地址和端口号之间需要用方括号"[]"来隔开,但是FeignClient默认并不会自动在请求的URL中加上方括号,需要手动添加。如果不手动添加,会导致请求失败。除了手动在请求URL中添加方括号,也可以在Feign的配置中添加一个拦截器,来自动添加方括号。在Feign中,通过实现RequestInterceptor接口来定义一个请求拦截器,在拦截器的实现中,可以对请求的URL进行修改,加上方括号。这样就可以不需要手动在请求URL中添加方括号了。

好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!

SpringCloud OpenFeign

声明:本文内容来自互联网不代表本站观点,转载请注明出处:https://bk.oku6.com/1/84099.html

相关推荐