Spring Cloud Feign 使用Apache的HTTP Client替换Feign原生httpclient

http 连接池能提升性能

http 的背景原理

a. 两台服务器建立 http 连接的过程是很复杂的一个过程,涉及到多个数据包的交换,并且也很耗时间。
b. Http 连接需要的 3 次握手 4 次分手开销很大,这一开销对于大量的比较小的 http 消息来说更大。

优化解决方案

a. 如果我们直接采用 http 连接池,节约了大量的 3 次握手 4 次分手;这样能大大提升吞吐率。
b. feign 的 http 客户端支持 3 种框架;HttpURLConnection、httpclient、okhttp;默认是HttpURLConnection。
c. 传统的 HttpURLConnection 是 JDK 自带的,并不支持连接池,如果要实现连接池的机制,还需要自己来管理连接对象。对于网络请求这种底层相对复杂的操作,如果有可用的其他方案,也没有必要自己去管理连接对象。
d. HttpClient 相比传统 JDK 自带的 HttpURLConnection,它封装了访问 http 的请求头,参数,内容体,响应等等;它不仅使客户端发送 HTTP 请求变得容易,而且也方便了开发人员测试接口(基于 Http 协议的),即提高了开发的效率,也方便提高代码的健壮性;另外高并发大量的请求网络的时候,还是用“连接池”提升吞吐量。

案例实现

1.添加相关的依赖

添加httpClient的依赖,同时添加Feign对HttpClient的支持


 

1.修改配置文件

在配置文件中开启feign对httpClient的设置。

注意:如果使用 HttpClient 作为 Feign 的客户端工具。那么在定义接口上的注解是需要注意,如果传递的是一个自定义的对象(对象会使用 json 格式来专递)。需要制定类型。

consumes=MediaType.APPLICATION_JSON_VALUE)

 

例子:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/271811.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自媒体工具:文本内容转音频文件实用小工具

目录 ​编辑 1、软件介绍 2、软件技术框架 3、使用说明 4、核心代码文件 5、注意事项 1、软件介绍 文本内容转转音频文件小工具,采用C#编程语言,基于Framework4.5开发,主要采用百度语音识别SDK,实现了在线文本内容转音频文件的功能…

IDEA 创建 SpringCloud项目-多项目方式

SpringCloud 虽然可以用多模块化的方式来创建,但是,SpirngCloud本身就是为分布式而准备的,如果使用多模块的话,那就是一个项目,偏离了分布式的概念。所以工程上还是常用多项目的方式,这样才可以分开布署各个…

盘点6款实用的文件对比工具,你都用过吗?

❤️作者主页:IT技术分享社区 ❤️作者简介:大家好,我是IT技术分享社区的博主,从事C#、Java开发九年,对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉: 数据库领域优质创作者🏆&#x…

IDEA开发中,类的头位置生成作者时间信息

点击 File > Settings > File and Code Templates > Class按照图中步骤添加如下信息 #if (${PACKAGE_NAME} && ${PACKAGE_NAME} ! "")package ${PACKAGE_NAME};#end #parse("File Header.java") /** * Author WangZeyu * Date ${…

数据库:PostgreSQL 和 MySQL对比

比较版本:PostgreSQL 11 VS MySQL5.7(innodb引擎) Oracle官方社区版版权情况:PostgreSQL 11(免费开源)、MySQL5.7 Oracle官方社区版(免费开源) 1. CPU限制 PGSQL没有CPU核心数限制&a…

MAC电脑常用效率工具推荐

❤️作者主页:IT技术分享社区 ❤️作者简介:大家好,我是IT技术分享社区的博主,从事C#、Java开发九年,对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉: 数据库领域优质创作者🏆&#x…

Java String类型转换成Date日期类型

//格式化数据 SimpleDateFormat sdf new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String format sdf.format(new Date()); System.out.println(format);//String格式的数据转化成Date格式 String timeStr "2019-07-09 03:34:56 "; Date parse sdf.pa…

MAC电脑8款常用设计工具推荐

目录 1、Sketch 3 2、Affinity Designer 3、Framer 4、PaintCode 5、Hype 3 Professional 6、Pixave 2 7、Iconjar 8、Sip for Mac and iPhone 1、Sketch 3 Sketch是完全满足我上面4条选择条件的一款UI设计工具,前文第50页已经提到过相关内容。 2、Affinity Designe…

计算机硬件:内存条的基础知识笔记

在电脑硬件中,CPU、显卡、内存均三者是重中之重,所以我们在选择这些核心硬件一定要慎重。今天给大家分享一下关于的电脑内存基础知识,让更多的装机朋友们可以更好的学习内存相关知识。 史上最易懂的电脑内存基础知识 内存条的基本概念&#x…

电脑CPU选购的几个指标

CPU的概念介绍 CPU是Central Processing Unit(中央处理器)的缩写,CPU的详细参数包括内核结构, 主频,外频,倍频,接口,缓存,多媒体指令集,制造工艺,电压,封装形…

idea生成方法注释的正确方法

生成方法注释 1.打开File -> Settings 2.Editor -> Live Templates -> 点击右边加号为自己添加一个Templates Group -> 然后选中自己的Group再次点击加号添加Live Templates 重点:Abbreviation那里不要用/开头的!!! …

php linux 缓存文件,Linux下搭建网站提示缓存文件写入失败怎么办?

Linux下搭建网站提示缓存文件写入失败时该怎么处理?基于ThinkPHP框架及Linux环境搭建的网站,经常会遭遇缓存文件写入失败的错误提示,即便是现在流行的P2P网站程序便是如此,具体解决方法请看下文。Linux下搭建网站提示缓存文件写入…

什么是CharSequence

CharSequence是一个接口,比较常见的String、StringBuilder、StringBuffer都实现了这个接口。 当我们看到一个API里面有CharSequence的时候,它也是可以被其子类代替的,一般用String代替即可。

你真的了解显卡吗?显卡基础知识大扫盲

❤️作者主页:IT技术分享社区 ❤️作者简介:大家好,我是IT技术分享社区的博主,从事C#、Java开发九年,对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉: 数据库领域优质创作者🏆&#x…

使用Redis让单号从001递增

最近项目遇到一个需求,单号从001开始递增 下面用到了redis处理 代码如下: public String getId() {String key "providerManager";Long incr getIncr(key);if (incr 0) {incr getIncr(key);//从001开始}DecimalFormat df new DecimalF…

硬件知识:直接拔掉USB移动硬盘会对硬盘造成影响吗?

大家在网上经常可以看到直接拔掉移动硬盘会损坏硬盘的文章。如果说突然拔掉硬盘会造成丢失数据我还有一点相信,但是说会造成损坏硬盘感觉就会有些疑问了。难道USB设备在开始设计时,没有考虑到热插拔这个动作? 移动硬盘在通电工作时&#xff0…

硬件:显示器接口DP、HDMI、VGA、DVI有什么区别?

❤️作者主页:IT技术分享社区 ❤️作者简介:大家好,我是IT技术分享社区的博主,从事C#、Java开发九年,对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉: 数据库领域优质创作者🏆&#x…

判断2个list中是否有相同的数据(相交)Collections.disjoint

比较两个集合中是否有相同的元素&#xff0c;发现Collections类下的disjoint方法可以处理 Collections.disjoint() 代码如下: List<Integer> list3 new ArrayList<>(); list3.add(1); list3.add(1); list3.add(6); List<Integer> list4 new ArrayList<…

电脑硬件:蓝屏的常见解决方案

我们在使用电脑的时候经常会遇到电脑蓝屏的故障&#xff0c;这个可以算是电脑故障最频繁出现的一个了&#xff0c;今天给大家介绍一下电脑蓝屏常见的处理办法&#xff0c;希望能给大家带来一些 帮助&#xff01; 1、电脑蓝屏一般处理办法 1、先了解发生蓝屏前电脑的情况及所做的…

1、Canvas的基本用法

1、Canvas是什么&#xff1f; HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像。 画布是一个矩形区域&#xff0c;您可以控制其每一像素。 canvas 拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。 2、创建 Canvas 元素 规定元素的 id、宽度和高度&#xff1a; …