一、在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的区别相关推荐

  1. Ribbon、Feign、OpenFeign、spring-cloud-openfeign的区别

    一. Ribbon 随着服务注册中心的安装完成后,客户端的负载均衡和服务的调用又是我们关注的话题.Ribbon可以实现客户端的负载均衡, 负载均衡LB LoadBalance(负载均衡):简单的说就是 ...

  2. android studio没有org.apache.http.client.HttpClient;等包问题 解决方案

    android studio没有org.apache.http.client.HttpClient;等包问题 解决方案 参考文章: (1)android studio没有org.apache.http ...

  3. org.apache.http.client.CircularRedirectException: Circular redirect to http://xxx问题解决

    org.apache.http.client.CircularRedirectException: Circular redirect to "http://xxx"问题解决 用H ...

  4. apache AH01630: client denied by server configuration错误解决方法

    apache AH01630: client denied by server configuration错误解决方法 出现这个错误的原因是,apache2.4 与 apache2.2 的虚拟主机配置 ...

  5. org.apache.flink.client.program.ProgramInvocationException: Job failed

    完整报错信息如下: scala> senv.execute() org.apache.flink.client.program.ProgramInvocationException: Job f ...

  6. 如何使用新的Apache Http Client发出HEAD请求

    如果您已更新Apache HTTP Client代码以使用最新的库(在撰写本文时,它是4.2.x版本的httpclient 4.3.5版本和httpcore 4.3.2版本),您会注意到某些类(例如o ...

  7. (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. ...

  8. org.apache.flink.client.program.ProgramInvocationException: The main method caused an error

    flink任务开启检查点并设置状态后端后,提交任务运行,出现以上错误,具体错误如下: org.apache.flink.client.program.ProgramInvocationExceptio ...

  9. Java使用apache.http.client.fluent快速构建HTTP请求

    相关包 <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient --><depend ...

最新文章

  1. linux系统知识 - 信号基础
  2. 算法训练 未名湖边的烦恼(递推)
  3. 蓝桥杯 基础练习 Sine之舞
  4. 复选框 checkbox获取值
  5. teambition 还是jira_我用过的那些测试过程管理工具TAPD、Teambition、CODING
  6. Swift-理解值类型
  7. window 服务器443端口占用,443和80端口被占用win10如何解决_443和80端口被占用win10怎么处理...
  8. 我与龙芯电脑的第一次亲密接触
  9. matlab patch 六面体,[MATLAB数学相关] 求正六面体的细分格式
  10. 消防工程师培训十大名师介绍
  11. win10系统停止更新服务器,Win10系统关闭自动更新功能的三种最佳方法
  12. MySQL导入myi,myd,frm文件及浏览
  13. 决策树(ID3、C4.5、CART、随机森林)
  14. VSTO中Word的查找方式
  15. 基于51单片机的智能雨刷设计
  16. 如何使用JavaScript导入和导出Excel文件
  17. js破解 零度代理ip
  18. 伊朗科学家被害真相:一场无懈可击的算法暗杀
  19. 对搜索引擎不友好的网站具有怎样的特征?
  20. h5网页检测手机是否安装了app。

热门文章

  1. C#3.0语法新特性集合
  2. 施密特出售Google股票套现3.27亿美元
  3. ASP.NET Performance Monitoring, and When to Alert Administrators
  4. Python学习笔记:I/O编程
  5. QT技术应用_2D绘图(转)
  6. caffe源码分析:blob.hpp分析
  7. 【Leetcode】二分法左侧边界右侧边界模板
  8. [云炬创业基础笔记]第二章创业者测试9
  9. [云炬创业基础笔记] 创业机会的评价标准与SWOT分析
  10. USTC English Club Note20171013(5)