Feign,Apache Http Client,OkHttp的区别
一、在Java中可以使用的HTTP客户端组件主要有3个,如下:
- (1)HttpURLConnection,JDK自带
- (2)Apache HttpComponents,独立的HTTP客户端实现,使用广泛,目前已发展到5.x版本,详见:https://hc.apache.org/index.html
- (3)OkHttp,一个新出现的HTTP客户端,详见:https://square.github.io/okhttp/
为什么已经存在了如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,参考文章
Feign,Apache Http Client,OkHttp的区别相关推荐
- Ribbon、Feign、OpenFeign、spring-cloud-openfeign的区别
一. Ribbon 随着服务注册中心的安装完成后,客户端的负载均衡和服务的调用又是我们关注的话题.Ribbon可以实现客户端的负载均衡, 负载均衡LB LoadBalance(负载均衡):简单的说就是 ...
- android studio没有org.apache.http.client.HttpClient;等包问题 解决方案
android studio没有org.apache.http.client.HttpClient;等包问题 解决方案 参考文章: (1)android studio没有org.apache.http ...
- org.apache.http.client.CircularRedirectException: Circular redirect to http://xxx问题解决
org.apache.http.client.CircularRedirectException: Circular redirect to "http://xxx"问题解决 用H ...
- apache AH01630: client denied by server configuration错误解决方法
apache AH01630: client denied by server configuration错误解决方法 出现这个错误的原因是,apache2.4 与 apache2.2 的虚拟主机配置 ...
- org.apache.flink.client.program.ProgramInvocationException: Job failed
完整报错信息如下: scala> senv.execute() org.apache.flink.client.program.ProgramInvocationException: Job f ...
- 如何使用新的Apache Http Client发出HEAD请求
如果您已更新Apache HTTP Client代码以使用最新的库(在撰写本文时,它是4.2.x版本的httpclient 4.3.5版本和httpcore 4.3.2版本),您会注意到某些类(例如o ...
- (Hive)org.apache.hadoop.hbase.client.Put.setDurability(Lorg/apache/hadoophbase/client/Durability;)V
报错信息: Error: java.lang.RuntimeException: java.lang.NoSuchMethodError:org.apache.hadoop.hbase.client. ...
- org.apache.flink.client.program.ProgramInvocationException: The main method caused an error
flink任务开启检查点并设置状态后端后,提交任务运行,出现以上错误,具体错误如下: org.apache.flink.client.program.ProgramInvocationExceptio ...
- Java使用apache.http.client.fluent快速构建HTTP请求
相关包 <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient --><depend ...
最新文章
- linux系统知识 - 信号基础
- 算法训练 未名湖边的烦恼(递推)
- 蓝桥杯 基础练习 Sine之舞
- 复选框 checkbox获取值
- teambition 还是jira_我用过的那些测试过程管理工具TAPD、Teambition、CODING
- Swift-理解值类型
- window 服务器443端口占用,443和80端口被占用win10如何解决_443和80端口被占用win10怎么处理...
- 我与龙芯电脑的第一次亲密接触
- matlab patch 六面体,[MATLAB数学相关] 求正六面体的细分格式
- 消防工程师培训十大名师介绍
- win10系统停止更新服务器,Win10系统关闭自动更新功能的三种最佳方法
- MySQL导入myi,myd,frm文件及浏览
- 决策树(ID3、C4.5、CART、随机森林)
- VSTO中Word的查找方式
- 基于51单片机的智能雨刷设计
- 如何使用JavaScript导入和导出Excel文件
- js破解 零度代理ip
- 伊朗科学家被害真相:一场无懈可击的算法暗杀
- 对搜索引擎不友好的网站具有怎样的特征?
- h5网页检测手机是否安装了app。
热门文章
- C#3.0语法新特性集合
- 施密特出售Google股票套现3.27亿美元
- ASP.NET Performance Monitoring, and When to Alert Administrators
- Python学习笔记:I/O编程
- QT技术应用_2D绘图(转)
- caffe源码分析:blob.hpp分析
- 【Leetcode】二分法左侧边界右侧边界模板
- [云炬创业基础笔记]第二章创业者测试9
- [云炬创业基础笔记] 创业机会的评价标准与SWOT分析
- USTC English Club Note20171013(5)