Feign,Apache Http Client,OkHttp的区别

来自:https://blog.csdn.net/cristianoxm/article/details/120942612

一、在Java中可以使用的HTTP客户端组件主要有3个,如下:

为什么已经存在了如Apache HTTPClient和OkHttp这样优秀HTTP客户端组件了,还会出现Feign呢?难道不是重复性开发吗?
实际上,Feign是一个Http客户端框架,它并没有去做跟Apache HTTPClient或OkHttp一样重复的事情,而是开发了一个框架,用于集成URLConnection,Apache Http Client,OkHttp实现具体的HTTP请求。
Feign基于注解实现配置,提供了许多贴近业务层更加丰富实用的功能,如:重试机制等,这才是Feign真正的亮点。
在这里插入图片描述
spring-cloud-openfeign是在Spring Cloud框架集成Feign时独立封装的一个组件,核心功能还是Feign的能力,但是spring-cloud-openfeign提供了在Spring容器环境中使用Feign时更加方便的一些配置和注解。
https://spring.io/projects/spring-cloud-openfeign 。如果项目中使用了Spring框架,推荐直接使用spring-cloud-openfeign组件会更加便捷。

二、Feign在默认情况下,它发送Http请求使用的是JDK源生的HttpURLConnection

在实际生产环境下,直接使用它是100%不可取的,这就需要我们使用更加高效的HC。Feign的模块中有三个关于HC的子模块:feign-okhttp、feign-httpclient、feign-googlehttpclient

关于使用okhttp替换openfeign默认的HttpURLConnection,参考文章:https://www.cnblogs.com/ArlenHard/articles/17250838.html

posted @ 2023-03-24 10:41  KeepArlen  阅读(518)  评论(0)    收藏  举报