当前位置: 首页 > news >正文

镜像网站做排名/如何建网址

镜像网站做排名,如何建网址,腾讯网,网站建设赚钱么TL;DR; CloseableHttpClient.close() 方法默认行为是关闭 HttpClientConnectionManager如果多个 CloseableHttpClient 共用了同一个 HttpClientConnectionManager,则第一个请求执行完,其他请求就会爆 Connection pool shut down 异常备注:ht…

TL;DR;

  • CloseableHttpClient.close() 方法默认行为是关闭 HttpClientConnectionManager
  • 如果多个 CloseableHttpClient 共用了同一个 HttpClientConnectionManager,则第一个请求执行完,其他请求就会爆 Connection pool shut down 异常
  • 备注:httpclient 版本是 4.5.6

1. 背景

某次上线以后,观察到所有的方法调用量都变得特别多,几百倍的增长,但因为当时统一时间段上线逻辑较多,并没有及时定位到问题。

第二天继续排查时,有同事指出 httpclient 连接池 Connection pool shut down 异常增多,于是想到前一天确实使用了相关的方法,代码如下

try {@Cleanup CloseableHttpClient client = Requests.getHttpclient(15000, 15000, 15000, proxyIpInfo);HttpGet httpGet = new HttpGet(url);@Cleanup final CloseableHttpResponse execute = client.execute(httpGet);return EntityUtils.toByteArray(execute.getEntity());
} catch (IOException e) {throw new RuntimeException(e);
}

2. CloseableHttpClientclose 方法

CloseableHttpClient 示例是通过如下代码创建的,其中 CONNECTION_MANAGER 是一个全局静态的共用的 HttpClientConnectionManager 实例。

HttpClients.custom().setConnectionManager(CONNECTION_MANAGER).setDefaultRequestConfig(requestConfig).build();

让我们深入 org.apache.http.impl.client.HttpClientBuilder#build 的源码,看一下如何构建 CloseableHttpClientclose 方法的,核心代码如下,注意看其中我补充的注释

List<Closeable> closeablesCopy = closeables != null ? new ArrayList<Closeable>(closeables) : null;
// 如果 connManagerShared 属性是 false(默认值)
// 那么其 close 方法的逻辑就是关闭 ConnectionManager
if (!this.connManagerShared) {if (closeablesCopy == null) {closeablesCopy = new ArrayList<Closeable>(1);}final HttpClientConnectionManager cm = connManagerCopy;... ...closeablesCopy.add(new Closeable() {@Overridepublic void close() throws IOException {cm.shutdown();}});
}

3. bug 定位

结合上面两个代码片段,真相已经大白,当 @Cleanup CloseableHttpClient client = Requests.getHttpclient(15000, 15000, 15000, proxyIpInfo); 执行过后,@Cleanup 自动执行 clientclose 方法,这时关闭了共用的全局静态 ConnectionManager

当其他请求获取 CloseableHttpClient 对象并请求时,ConnectionManager 已经被关闭,遂报出 Connection pool shut down 异常

这一过程速度非常快,导致原来函数执行时间缩短很多。因为一次 http 请求 100ms - 数秒,而检测 ConnectionManager 关闭报错只要几 ms。这进而导致了单位时间内,所有函数的执行次数都飙升的很高。

相关文章:

CloseableHttpClient.close() 导致 Connection pool shut down 的问题

TL;DR; CloseableHttpClient.close() 方法默认行为是关闭 HttpClientConnectionManager如果多个 CloseableHttpClient 共用了同一个 HttpClientConnectionManager&#xff0c;则第一个请求执行完&#xff0c;其他请求就会爆 Connection pool shut down 异常备注&#xff1a;ht…...

centos7 docker空间不足

今天在使用docker安装镜像的时候&#xff0c;出现报错 查看原因&#xff0c;发现是分区空间不足导致的 所以考虑进行扩容 首先在vmware扩容并没有生效 因为只是扩展的虚拟空间&#xff0c;并不支持扩展分区大小&#xff0c;下面对分区进行扩容 参考&#xff1a; 分区扩容 主…...

C#基于SkiaSharp实现印章管理(5)

印章中最常见的特殊形状通常是五角星&#xff0c;空心、实心的都可能存在&#xff0c;本文学习并实现在印章内部绘制五角星形状。   百度五角星的绘制方法&#xff0c;主要分为三种&#xff1a;   1&#xff09;五角星各点坐标固定&#xff0c;直接调用编程语言的绘制线条或…...

【C#】ThreadPool的使用

1.Thread的使用 Thread的使用参考&#xff1a;【C#】Thread的使用 2.ThreadPool的使用 .NET Framework 和 .NET Core 提供了 System.Threading.ThreadPool 类来帮助开发者以一种高效的方式管理线程。ThreadPool 是一个线程池&#xff0c;它能够根据需要动态地分配和回收线程…...

【Python系列】Python 中`eval()`函数的正确使用及其风险分析

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

使用Spring Boot开发应用:基于请求参数MD5的缓存键及其他缓存方式

本文将介绍如何在Spring Boot应用中实现基于请求参数MD5的缓存键&#xff0c;以及其他常见的缓存方式。通过实际代码示例&#xff0c;展示如何应用这些技术优化系统性能。 1. 引入必要的依赖 首先&#xff0c;在Spring Boot项目中引入缓存相关的依赖。修改pom.xml文件&#x…...

typescript中interface常见3种用法

文章目录 函数类型对象类型【自命名】&#xff1a; (函数)对象类型 函数类型 作用&#xff1a;声明一个函数接口&#xff1a;可用于类型声明 | 不可implements 对象类型 作用&#xff1a;声明对象具备哪些实例接口&#xff1a;可用于类型 | 可implements 【自命名】&…...

windows10 安装CUDA教程

如何在windows10系统上安装CUDA? 1、查看电脑的NVIDIA版本 nvidia-smi 2、官网下载所需CUDA版本 官网地址:https://developer.nvidia.com/cuda-toolkit-archive 我们所安装的CUDA版本需要小于等于本机电脑的NVIDIA版本。推荐使用迅雷下载,速度会更快哦。 3、安装步骤...

计算机毕业设计选题推荐-某炼油厂盲板管理系统-Java/Python项目实战

✨作者主页&#xff1a;IT研究室✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…...

PSO求解函数最小值的MATLAB例程|MATLAB源代码

本篇文章适合PSO入门&#xff0c;进阶的可能会觉得太简单的。 目录 PSO例程作用运行结果代码函数解释 例程修改tips PSO Particle Swarm Optimization&#xff0c;粒子群优化算法&#xff0c;通过模拟鸟群或鱼群的行为来寻找最优解。在计算时通过对一群粒子的位置和速度进行迭…...

scrapy 爬取旅游景点相关数据(一)

配套视频可以前往B站&#xff1a;麦麦大数据 项目目标: 爬取的是穷游旅游景点列表 、评论数据 &#x1f4ca; 章节&#xff1a; &#x1f606; Scrapy 爬取旅游景点相关数据&#xff08;一&#xff09; &#x1f606; Scrapy 爬取旅游景点相关数据&#xff08;二&#xff09; &…...

构建铁塔基站安全防护网:视频AI智能监控技术引领智慧化转型

一、背景现状 随着通信技术的快速发展&#xff0c;铁塔基站作为重要的通信基础设施&#xff0c;其安全、稳定、高效的运行对于保障通信网络的畅通至关重要。然而&#xff0c;铁塔基站大多分布在公路边、高山、野外等区域&#xff0c;巡检难度大&#xff0c;维护效率低&#xf…...

Java中的分布式缓存:Ehcache与Hazelcast

Java中的分布式缓存&#xff1a;Ehcache与Hazelcast 大家好&#xff0c;我是微赚淘客系统3.0的小编&#xff0c;是个冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将深入探讨Java中的两种分布式缓存技术&#xff1a;Ehcache与Hazelcast。分布式缓存可以显…...

前端开发工程师的薪资,主要取决于哪3个方面?

作者&#xff1a;清水束竹 从2022年开始&#xff0c;互联网行业的就业情况就不容乐观了。 最明显的三个表现:裁员、缩招、降薪。 其实2021-2022年年中那段时间&#xff0c;互联网企业出现了一波假性繁荣。 某些大厂Q大量招聘应届毕业生&#xff0c;宣传铺天盖地&#xff0c;不…...

springboot美食网站—计算机毕业设计源码11574

摘 要 随着人们生活水平的提高&#xff0c;人们对美食的要求也越来越高&#xff0c;对各类美食信息需求越来越大。因此&#xff0c;结合计算机快速发展、普及&#xff0c;在此基础上制作一个页面简单、美观,功能实用的美食网站势在必行&#xff0c;满足用户分享美食的需求。 美…...

WordPress建站:如何使用ChemiCloud搭建外贸独立站

以前自行搭建一个网站&#xff0c;不懂一点技术那是很难完成的&#xff0c;现如今WordPress的出现极大地降低了搭建网站的技术门槛&#xff0c;不需要懂任何代码&#xff0c;只需按步骤操作就行。WordPress 是一个非常流行的开源内容管理系统&#xff08;CMS&#xff09;&#…...

在 Vim 编辑器中,如果某个单词被意外地高亮显示,使用:noh可以取消高亮显示

文章目录 1、问题出现的背景2、解决办法 1、问题出现的背景 配置镜像加速器&#xff0c;修改 /etc/docker/daemon.json 目录下的文件&#xff0c;不小心高亮显示https&#xff0c;产生问题的步骤是&#xff0c;我先是按esc键退出vim的编辑模式&#xff0c;然后在https的前面按…...

一条命令安装mysql,php

一条命令安装mysql&#xff0c;php&#xff0c;wget http://soft.vpser.net/lnmp/lnmp1.5.tar.gz -cO lnmp1.5.tar.gz && tar zxf lnmp1.5.tar.gz && cd lnmp1.5 && ./install.sh lnmp...

配置maven环境

一、把maven文件下载到D盘下 二、创建一个maven文件夹&#xff0c;并在其中创建一个repository文件夹 三、桌面右键单击属性设置&#xff0c;搜索环境 添加MAVEN HOME变量&#xff0c;让然后把apache-maven路径下的bin文件的路径复制进来 用记事本或者NotePad打开下图路径的set…...

飞书打卡 快捷指令

使用快捷指令定时飞书打卡 在网上找了一圈&#xff0c;只有钉钉打卡的快捷指令&#xff0c;但是公司换飞书&#xff0c;哪个打工人不怕忘记打卡呢&#xff0c;所以自己研究了一下&#xff0c;其实也很简单。 找url 问题的最关键是打开飞书的打卡界面 如果只是打开飞书APP 很…...

LeYOLO,一种用于目标检测的新型可扩展且高效的CNN架构

摘要 在目标检测中&#xff0c;深度神经网络的计算效率至关重要&#xff0c;尤其是随着新型模型越来越注重速度而非有效计算量&#xff08;FLOP&#xff09;。这一发展趋势在某种程度上忽视了嵌入式和面向移动设备的AI目标检测应用。在本文中&#xff0c;我们基于FLOP关注于高…...

docker安装phpMyAdmin

直接安装phpMyAdmin需要有php环境&#xff0c;比较麻烦&#xff0c;总结了使用docker安装方法&#xff0c;并提供docker镜像。 1.docker镜像 见我上传的docker镜像&#xff1a;https://download.csdn.net/download/taotao_guiwang/89595177 2.安装 1).加载镜像 docker load …...

举例详细学习和分析后端业务逻辑代码开发思路

在此之前&#xff0c;先来补充一下上一篇文章的一点内容&#xff1a;上一篇文章点击此处详看 对于画线的这句话&#xff0c;来详细解释一下吧&#xff01; 这里面说&#xff0c;对于service服务层&#xff0c;如果我们所需要实现的业务比较简单的话可以直接在...service接口里面…...

面试经典算法150题系列-数组/字符串操作之轮转数组

序言&#xff1a;今天是算法系列的第六题啦&#xff0c;无需多说&#xff0c;上题&#xff01; 轮转数组 给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3…...

苹果手机怎么录屏?一键操作,轻松掌握录屏技巧

最近新换了一台苹果手机&#xff0c;但苹果手机和安卓手机有挺多不相同的地方&#xff0c;就比如苹果手机怎么录屏我一直都没找到&#xff0c;有没有经常使用苹果手机的朋友可以帮帮我&#xff1f;先谢谢大家啦&#xff01;” 苹果手机作为全球领先的智能手机品牌&#xff0c;…...

[Vue3] - 3 数据响应式

前言 在前端开发过程中,最为注重的就是数据的即时性和响应。但随着技术的发展vue2.0的数据响应方式,不能响应属性的新增和删除、以及通过数组下标修改界面不会自动更新等弊端逐渐显露。vue3.0为开发者提供了更为便捷的数据响应方式,接下来就让我们一起去探索一下。 目标 1 …...

【话题】“八股文”在实际工作中是助力、阻力还是空谈?

目录 前言 方向一&#xff1a;“八股文”对招聘过程的影响 方向二&#xff1a;“八股文”在日常工作中的实用价值 方向三&#xff1a;改进“八股文”学习和评估的方法 前言 在当今快速发展的信息技术领域&#xff0c;程序员的角色日益重要。随着技术的不断进步&#xff0c;…...

Windows 10 安装 WSL、安装 Go 以及配置环境变量的详细教程

安装 WSL 和 Ubuntu 启用 WSL 功能 以管理员身份打开 PowerShell。 运行以下命令以启用 WSL 功能&#xff1a; dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart启用虚拟机平台 继续在管理员 PowerShell 中运行以下命令以启…...

论文阅读:基于生物神经元的模拟游戏世界感知与学习

论文内容概述 AI要90分钟学会的游戏&#xff0c;人脑细胞竟在5分钟搞定了。Cell在2022年的研究中&#xff0c;使用80万体外神经元细胞(DishBrain)竟然学会玩70年代经典街机游戏Pong&#xff01; 论文链接&#xff1a;In vitro neurons learn and exhibit sentience when emb…...

理解最先进模型的起点GPT-2 源码 配置的解释

理解最先进模型的起点GPT-2 源码 配置的解释 flyfish 为训练GPT模型设置和管理配置参数、日志记录以及实验的可重复性 理解最先进模型的起点GPT-2 理论知识 理解最先进模型的起点GPT-2 源码 注释 模型部分(from mingpt.model) utils.py import os import sys import json im…...