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

沈阳网站seo排名公司阿里云服务器建设网站选择那个镜像

沈阳网站seo排名公司,阿里云服务器建设网站选择那个镜像,WordPress积分插件制作,免费个人网站+上传项目场景: 博主今天在生产环境遇到一个图片下载的问题,生产服务器图片下载报错,导致下载异常通过日志文件发现报错Caused by: java.net.ConnectException: Connection timed out (Connection timed out)连接超时,但是项目当中代码…

项目场景:

博主今天在生产环境遇到一个图片下载的问题,生产服务器图片下载报错,导致下载异常通过日志文件发现报错Caused by: java.net.ConnectException: Connection timed out (Connection timed out)连接超时,但是项目当中代码并未设置图片的url读取超时时间,代码片段如下:URLConnection并未设置超时时间,所以当时就怀疑是否是nginx设置了超时时间或者前端设置了超时时间。

 response.setContentType("application/octet-stream");response.setCharacterEncoding("utf-8");response.setHeader("Content-Disposition", "attachment; filename=" + URLUtil.encode(fileName.replace(",", ",")));URL url = new URL(uploadFileEntity.getFilePath());URLConnection connection = url.openConnection();BufferedInputStream inputStream = new BufferedInputStream(connection.getInputStream());BufferedOutputStream outputStream = new BufferedOutputStream(response.getOutputStream());byte[] buffer = new byte[1024];int bytesRead;while ((bytesRead = inputStream.read(buffer)) != -1) {outputStream.write(buffer, 0, bytesRead);}outputStream.flush();outputStream.close();inputStream.close();

问题描述

这里我们是通过 new URL方法来获取请求连接的,此处的连接有可能是http协议的地址,也可能是https协议的地址。openConnection方法在http协议下返回的是HttpURLConnection,而https协议返回的是HttpsURLConnection。

生产环境下的图片地址是https协议的ip+端口的形式的地址,此时代码在connection.getInputStream()时会报错超时,导致接口响应失败。


原因分析:

对于这种超时,我们需要考虑的几个点,前端超时、后端超时、还有nginx超时。
前端超时: 系统数据还未完全的响应完成,前端过了超时时间就会断开http/https连接导致超时异常(怀疑)。
后端超时: 系统需要下载的文件过大,我们的后端的URLConnection设置了超时时间,导致数据还未读取完成连接就关闭了导致了超时(默认没设置就是永不超时,排除)。
niginx超时: 对于我们的系统来说,一般都会通过nginx代理访问,默认的话nginx的超时时间是60s。在我通过页面多次点击的情况下发现每次都是60s准时超时,就是说是因为后端代码异常导致的nginx的超时异常。

通过把请求的https的地址放置到上述的代码当中,编写一个单元测试会发现,会报错Exception in thread "main" 
javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No subject alternative names
matching IP address xxx found。并不是超时异常,因为我们本地是没有https的证书,但是线上docker配置了ssl证书。所以又引出了
其他的问题。

解决方案:

通过在现场环境执行curl命令下载文件,看一下响应时间,排查一下问题

curl --request POST --header "content-type: application/json" --header "accept: application/octet-stream" --header "Authorization: Bearer token" --header "Connection: keep-alive" --header "server-group: xxx"--data "{\"id\": \"xxx\"}" -o test.jpg http://xxx/api/service/uploadFile/downloadById

将问价下载到本地执行路径下,并取名test.jpg。发现代码响应时间不超过5s钟,所以严重怀疑是证书的问题,但是因为问题排查到这里,每个环节都觉得自己没问题,所以博主只能使用一个取巧的方法来解决这个问题。当下载的文件为https协议的文件时忽略https验证,使用此方法也是迫于无奈。

 response.setContentType("application/octet-stream");response.setCharacterEncoding("utf-8");response.setHeader("Content-Disposition", "attachment; filename=" + URLUtil.encode(fileName.replace(",", ",")));URL url = new URL(uploadFileEntity.getFilePath());URLConnection connection = url.openConnection();//如果是https请求,忽略证书校验。http请求则不做任何处理
if (connection instanceof HttpsURLConnection) {HttpsURLConnection httpsConnection = (HttpsURLConnection) connection;httpsConnection.setHostnameVerifier((hostname, session) -> true);
}BufferedInputStream inputStream = new BufferedInputStream(connection.getInputStream());BufferedOutputStream outputStream = new BufferedOutputStream(response.getOutputStream());byte[] buffer = new byte[1024];int bytesRead;while ((bytesRead = inputStream.read(buffer)) != -1) {outputStream.write(buffer, 0, bytesRead);}outputStream.flush();outputStream.close();inputStream.close();
http://www.dtcms.com/a/507956.html

相关文章:

  • 为什么做网站ppt网络营销推广方案范文
  • 网站制作怎么做图标网站内部结构
  • 整体设计 聚焦语言 之1 融合自然语言 处理 - 形式语言操作 的伺服跟随式人工语言控制以及与 LINGO 功能多场景适配方案 之2 Synapse思维引擎
  • 档案管理系统核心功能图解:从归档到销毁的全生命周期管理
  • [拓展功能]Anaconda 环境迁移与管理指南:备份、恢复与维护
  • 用C语言实现原型模式
  • 当数据传递遇上诗意:SPI通信协议探秘
  • 基于SAM2的眼动数据跟踪2
  • CQC软件评测标准解析:软件测试的依据标准有哪些?
  • 网站 线框图一键自助建站
  • 石家庄seo网站优化价格免费企业名录网站
  • 生存的邏輯:時間、銷售與貨幣[特殊字符]
  • 北京市建网站网站建设方案报价费用明细价格
  • Docker安装指南(Windows版)
  • 【完整源码+数据集+部署教程】【零售和消费品&存货】价格标签检测系统源码&数据集全套:改进yolo11-RFAConv
  • 03-Machine-1-adc.py K230的模数转换ADC功能演示
  • 苏州网站建设比较好的公司网站开发笔记本要多少钱的
  • 西安找公司建网站wordpress优化插件
  • 微软 365 迁移解决方案
  • wordpress仿站方法网站用什么语言做
  • 【ROS2】 在其他包中使用自定义接口
  • 科技新突破!微美全息(NASDAQ:WIMI)研发保留运动想象脑机接口“方差密钥”技术
  • 千里科技,难再造“赛力斯”
  • 苏州唯理科技近期也正式发布了国内首款神经腕带产品
  • 高明建网站服务centos7搭建wordpress
  • 哪些网站用织梦默认模板建行网址
  • 【反重力飞行器】从量子领域来看
  • Linux网络之----序列化和反序列化
  • 行级锁补充【间隙锁,临键锁】
  • CCD CMOS传感器