spring RestTemplate使用说明
rest-template是spring对httpclient的逻辑封装,它底层还是基于httpclient,所以一些配置其实跟httpclient是强相关的。
基本配置
rest-template可以不带参数,使用默认配置,也可以指定ClientHttpRequestFactory参数,ClientHttpRequestFactory是一个interface,其具体实现有:
- HttpComponentsClientHttpRequestFactory,包含一个apache的HttpClient实例
- OkHttp3ClientHttpRequestFactory,包含一个OkHttpClient的实例
以HttpComponentsClientHttpRequestFactory为例,它接受一个apache的HttpClient实例,我们可以定制其配置,样例代码如下:
return HttpClients.custom().setMaxConnTotal(10000) // 连接池的最大连接数.evictIdleConnections(10, TimeUnit.MINUTES) // 连接池内的连接空闲超出该时间即销毁.setMaxConnPerRoute(2000) //单域名允许的最大连接数.setDefaultRequestConfig(buildRequestConfig()) // 连接配置见下.setRetryHandler(new DefaultHttpRequestRetryHandler(2, true)) //失败后重试次数;重试时是否需要重新发送请求.build();
RequestConfig属于基本的连接配置,如下:
return RequestConfig.custom().setConnectTimeout(5) // TCP连接超时.setConnectionRequestTimeout(60) //从连接池获取连接的超时.setSocketTimeout(60) // 请求等待超时.build();
顺带说一下一个TCP连接耗费的内存数(参考这里),使用
sysctl -A | grep net | grep mem
命令可以查看一个TCP连接的读写缓存默认大小,在我的ubuntu上大约200~300K,注意只是默认大小,随着连接数增大,读写缓存大小是会降低的。像上面的例子,若10000个连接都是忙碌的,内存应该会达到G级别(实际则不会,总有部分连接是空闲的)。
相关文章:
spring RestTemplate使用说明
rest-template是spring对httpclient的逻辑封装,它底层还是基于httpclient,所以一些配置其实跟httpclient是强相关的。 基本配置 rest-template可以不带参数,使用默认配置,也可以指定ClientHttpRequestFactory参数,Cl…...
thinkphp:try-catch捕获异常
使用简单的例子,实现了一个简单的try-catch捕获异常的实例 //开始事务Db::startTrans(); try{ //有异常抛出异常 if(存在错误){ throw new \Exception("异常信息"); } // 提交事务 Db::commit(); // 返回成功信息 ... } catch (\…...
shardingsphere分库分表跨库访问 添加分片规则
shardingsphere分库分表跨库访问 添加分片规则 建立 JDBC 环境 创建表 t_order: CREATE TABLE t_order (tid bigint(20) NOT NULL,tname varchar(255) DEFAULT NULL,goods_id bigint(20) DEFAULT NULL,tstatus varchar(255) DEFAULT NULL,PRIMARY KEY (tid) ) E…...
c++:std::map下标运算符的不合理使用
这是我分析之前遗留代码时发现的一个隐藏点;不过我并不认为这样使用std::map是合理的。 看看简化后的代码,v1、v2的值应该是多少呢? #include <map>std::map<int, int> cm[2];int get_cm_value(int device, int ctrl) { auto …...
KeyFormer:使用注意力分数压缩KV缓存
Keyformer: KV Cache Reduction through Key Tokens Selection for Efficient Generative Inference 202403,发表在Mlsys Introduction 优化KV cache的策略,主要是集中在系统级别的优化上,比如FlashAttention、PagedAttention,它…...
MetaGPT源码 (ContextMixin 类)
目录 理解 ContextMixin什么是 ContextMixin?主要组件实现细节 测试 ContextMixin示例:ModelX1. 配置优先级2. 多继承3. 多继承重写4. 配置优先级 在本文中,我们将探索 ContextMixin 类,它在多重继承场景中的集成及其在 Python 配…...
MATLAB生成.exe独立程序过程(常见问题解决方法)(2024.12.14)
本文只记录我执行过程中遇到的关键问题、以及解决方法,不讲诉整个流程。 电脑环境 win11系统 matlab 2024b 版本 整体流程 1.下载matlab运行时库,简写为MCR 2.配置MCR环境 3.打包程序 4.目标机器安装程序 一、下载MCR 下载这个折腾了大半天,大概问题就是…...
PHP排序算法:数组内有A~E,A移到C或者C移到B后排序,还按原顺序排序,循环
效果 PHP代码 public function demo($params){function moveNext($arr){$length count($arr);$lastElement $arr[$length - 1];for ($i $length - 1; $i > 0; $i--) {$arr[$i] $arr[$i - 1];}$arr[0] $lastElement;return $arr;}function moveAndReplace($array, $from…...
ChatGPT搜索全新升级,向全体用户开放,近屿智能助力AI行业发展
12月17日,OpenAI在第八天直播中正式宣布ChatGPT搜索功能全面升级,并即日起对所有ChatGPT用户开放。此次更新不仅带来了显著的性能提升,还引入了多项突破性功能,如更快的搜索速度、全新的地图体验以及YouTube视频嵌入,为…...
win10配置免密ssh登录远程的ubuntu
为了在终端ssh远程和使用VScode远程我的VM上的ubuntu不需要设置密码,需要在win10配置免密ssh登录远程的ubuntu。 在win10打开cmd,执行下面的代码生成密钥对(会提示进行设置,按照默认的配置就行,一直回车)&…...
skywalking 搭建 备忘录
基础环境 apache-skywalking-apm-9.6.0.tar.gz apache-skywalking-java-agent-9.1.0.tgz elasticsearch 7.14.1 采用dockers搭建 或者手动部署 kibana 可视化 应用 微服务版 consumer.jar eureka.jar 注册中心 provider.jar skywalking 地址 https://skywalkin…...
linux日常常用命令(AI向)
进程挂后台运行 nohup sh ./scripts/*****.sh > ./output/*****.log 2>&1 &删除***用户的所有python进程 pkill -u *** -f "^python"列出“***”用户的进程信息 ps aux --sort-%mem | grep ^***git add ./*git commit -m "注释"git push …...
信奥赛CSP-J复赛集训(bfs专题)(5):洛谷P3395:路障
信奥赛CSP-J复赛集训(bfs专题-刷题题单及题解)(5):洛谷P3395:路障 题目描述 B 君站在一个 n n n\times n n...
《红队和蓝队在网络安全中的定义与分工》
网络安全中什么是红队蓝队 在网络安全领域,红队和蓝队是一种对抗性的演练机制,用于测试和提升网络安全防御能力。 红队(Red Team) 定义与目标 红队是扮演攻击者角色的团队。他们的主要任务是模拟真实的网络攻击,利用各…...
李宏毅深度强化学习入门笔记:PPO
李宏毅-深度强化学习-入门笔记:PPO 一、Policy Gradient(一)基本元素(二)Policy of Actor1. Policy π \pi π 是带有参数 θ \theta θ 的 network2. 例子:运行流程 (三)Actor, E…...
vue2项目中如何把rem设置为固定的100px
在 Vue 2 项目中,可以通过动态设置 html 元素的 font-size 来将 1rem 固定为 100px。以下是具体步骤: 在项目的入口文件 main.js 中添加以下代码,用于动态设置 html 的 font-size: // main.js function setHtmlFontSize() {cons…...
C++多线程常用方法
在 C 中,线程相关功能主要通过头文件提供的类和函数来实现,以下是一些常用的线程接口方法和使用技巧: std::thread类 构造函数: 可以通过传入可调用对象(如函数指针、函数对象、lambda 表达式等)来创建一…...
ubuntu+ros新手笔记(三):21讲没讲到的MoveIt2
1 安装MoveIt2 安装参照在ROS2中,通过MoveIt2控制Gazebo中的自定义机械手 安装 MoveIt2可以选择自己编译源码安装,或者直接从二进制安装。 个人建议直接二进制安装,可以省很多事。 sudo apt install ros-humble-moveitmoveit-setup-assistan…...
Android Studio创建新项目并引入第三方so外部aar库驱动NFC读写器读写IC卡
本示例使用设备:https://item.taobao.com/item.htm?spma21dvs.23580594.0.0.52de2c1bbW3AUC&ftt&id615391857885 一、打开Android Studio,点击 File> New>New project 菜单,选择 要创建的项目模版,点击 Next 二、输入项目名称…...
window QT/C++ 与 lua交互(mingw + lua + LuaBridge + luasocket)
一、环境与准备工作 测试环境:win10 编译器:mingw QT版本:QT5.12.3 下载三种源码: LuaBridge源码:https://github.com/vinniefalco/LuaBridge LUA源码(本测试用的是5.3.5):https://www.lua.org/download.html luasocket源码:https://github.com/diegonehab/luasocket 目…...
基于COMSOL的相变模拟:石蜡、熔盐、金属等的奇妙相变之旅
基于COMSOL的相变模拟(石蜡、熔盐、金属等) 材料从完全固态转变到液态(或者液态冷却到固态),考虑液相的自然对流对相变过程的影响 材料的参数设定与融化或凝固状态相关,如图中所示最近在研究材料的相变过程…...
嘉为蓝鲸应用发布中心V6.3发布:流自融合、安全提效,全方位护航企业级应用发布
前言 嘉为蓝鲸应用发布中心鲸舟是企业用于实现一体化应用投产发布的基础设施,能够对应用发布进行统一管理和自动化执行。平台支持单体/微服务应用发布、分布式/容器化发布、应用全生命周期管理,以及蓝绿/金丝雀发布等多种发布场景。发布总览 2026年春季&…...
线性基——2026杭电春季联赛第三场1005月球异或
前言 本人蒟蒻,如有错误还请指出。 前不久刚学了线性基,结果就用上了。线性基yyds! 没学过线性基的出门左拐 放一个之前写的线性基笔记 原题链接 题目大意 新定义三进制下的异或运算 。 再给你一个长度为 的数组,你可以…...
高效全方位网页资源捕获方案:猫抓扩展技术解析与应用指南
高效全方位网页资源捕获方案:猫抓扩展技术解析与应用指南 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 引言:网页资源获取…...
终极Mach-O文件分析指南:使用Bloaty深度剖析苹果应用大小
终极Mach-O文件分析指南:使用Bloaty深度剖析苹果应用大小 【免费下载链接】bloaty Bloaty: a size profiler for binaries 项目地址: https://gitcode.com/gh_mirrors/bl/bloaty Bloaty是一个强大的二进制文件大小分析工具,专门用于深度剖析可执行…...
告别编译噩梦:用VSCode + CMake Tools 在Windows上优雅地构建和调试ncnn项目
告别编译噩梦:用VSCode CMake Tools 在Windows上优雅地构建和调试ncnn项目 对于习惯使用轻量级现代编辑器的开发者来说,在Windows平台编译ncnn这类高性能神经网络框架往往意味着要在笨重的IDE和晦涩的命令行工具之间艰难抉择。本文将展示如何通过VSCode…...
dji 妙算3编译ffmpeg启用h264_nvmpi h264_nvenc硬件加速
1. nvidia-codec-headers #版本 12.0.16 cd nv-codec-headers#更改Makefile文件,指定安装目录 vim Makefile PREFIX /open_app/user_installMakefile文件更改后如下所示make && make install2. nvidia-l4t-jetson-multimedia-api 下载包 wget https://repo…...
5W功耗实现25TOPS算力,LM2-100-V0算力模组破解AI安防核心难题
在智慧安防边缘AI应用快速部署需求的背景下,设备制造商常面临终端设备算力不足、功耗超标、体积受限、部署太慢等困境。模型越复杂,终端越吃力;设备要小型化,算力要打折扣;长期稳定运行,散热与功耗又成瓶颈…...
Comfyui从入门到进阶教程分享
接触Comfyui的这段时间,从最开始的安装部署踩坑,到后来独立搭建自定义工作流,试过不少零散的教程,也整理了一套成体系的学习内容,覆盖了从基础操作到高阶玩法的各个环节,不管是刚入门的新手,还是…...
Flowable建模器汉化实战:如何用SecurityUtils绕过官方认证实现本地化部署
Flowable建模器深度汉化与本地化部署实战指南 当企业级工作流系统需要深度定制时,Flowable建模器的原生界面往往成为用户体验的瓶颈。本文将揭示一套完整的解决方案,从界面元素汉化到认证体系重构,最终实现开箱即用的中文建模环境。 1. 汉化…...
