Aliyun OSS Java SDK超时时间设置

简介: Aliyun OSS Java SDK超时时间设置

Aliyun OSS Java SDK发送一个请求,有5个阶段:
java_sdk_timeout

阶段Ⅰ

  • 从连接池中获取连接,如果使用的连接已经达到最大连接数,则等待直到有连接释放,或达到最大超时时间,抛出异常ConnectionPoolTimeoutException。如果设置了比较大最大连接数,但是并不想让连接池中真正占用很多连接,SDK会自动关闭闲置时间较长的连接。
  • 最大连接数默认1024个,使用ClientConfiguration.setMaxConnections设置。
    从连接池中获取默认不超时,可以通过ClientConfiguration.setConnectionRequestTimeout设置。默认SDK会关闭闲置超过60秒的连接,可以通过ClientConfiguration.setIdleConnectionTime设置。
  • OSS Java SDK使用连接池,是为了复用连接,减少发送请求时重复建立连接、断开连接的时间,提高服务效率、增强服务器稳定性。

阶段Ⅱ

  • 从连接池中获取的连接,如果尚未建立到OSS连接,则新建。新建连接有超时时间,超时报ConnectionTimeout。如果从连接池中获取的连接已经建立,检查连接闲置时长。如果连接闲置时长没有超过阈值,直接复用连接;如果超过阈值,检测连接有效性,有效继续使用,无效重建连接。
  • 新建连接默认超时时间50秒,可以通过ClientConfiguration.setConnectionTimeout设置。
  • 默认连接闲置时长超过2秒,复用前检查连接是否有效。 闲置连接使用前有效性检查功能在2.1.2前的版本有bug,2.1.2及其后版本修改,原因及问题详见[常见问题]。

阶段Ⅲ

  • 发送请求。请求发送的速度受网络速度的影响。发送请求的超时基于TCP协议栈的超时重传机制,一般不需要设置超时时间,目前也没有提供方法设置。

  • LINUX内核的TCP协议栈重传超时一般是15到30分钟。

阶段Ⅳ

  • 请求发送成功后,等待回复。等待回复是有超时时间的,超时会抛出异常SocketTimeout。等待数据回复超时时间默认50秒,可以通过ClientConfiguration. setSocketTimeout
  • 该参数请根据实际网络情况设置。

阶段Ⅴ

  • 接收数据。如果数据较大,会分多个包传输,收到第N个包后,超时时间内未收到第N+1包在,也会抛出异常SocketTimeout。
    包间隔超时时间与等待数据回复超时时间由参数ClientConfiguration.setSocketTimeout控制 。
  • 该参数请根据实际网络情况设置。

一些应用场景下用户需要控制整个请求的时间,即上面5个阶段的时间总和。如视频直播场景下,上传一个请求是有时效性限制的。OSS Java SDK提供了请求级别的时间设置:

// 需要开启,默认不开启
ClientConfiguration.setRequestTimeoutEnabled(true);
// 设置请求超时,单位毫秒,默认值300秒
ClientConfiguration.setRequestTimeout(300 * 1000);

如果请求超过了设置时间尚未完成,请求失败,抛出异常ClientException。

提示

  • OSS Java SDK超时单位都是毫秒。
相关实践学习
对象存储OSS快速上手——如何使用ossbrowser
本实验是对象存储OSS入门级实验。通过本实验,用户可学会如何用对象OSS的插件,进行简单的数据存、查、删等操作。
目录
相关文章
|
11月前
|
Java API 开发工具
百宝箱开放平台 ✖️ Java SDK
百宝箱提供Java SDK,支持开发者集成其开放能力。需先发布应用,准备Java 8+及Maven环境,通过添加依赖安装SDK,并初始化客户端调用对话型或生成型智能体,实现会话管理、消息查询与文件上传等功能。
1880 0
百宝箱开放平台 ✖️ Java SDK
|
存储 Java API
MinIO Java SDK 7.1.4 升级到 8.5.17 需要注意什么
现在我需要你帮我分析对比这个两个sdk在对外的接口设计上是否有不兼容的变更
1439 5
|
算法 Java Linux
java制作海报四:java BufferedImage 转 InputStream 上传至OSS。png 图片合成到模板(另一个图片)上时,透明部分变成了黑色
这篇文章主要介绍了如何将Java中的BufferedImage对象转换为InputStream以上传至OSS,并解决了png图片合成时透明部分变黑的问题。
1176 1
|
存储 人工智能 开发工具
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
只需要通过向AI助理提问的方式输入您的需求,即可瞬间获得核心流程代码及参数,缩短学习路径、提升开发效率。
1985 5
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
|
Java 开发工具
通过Java SDK调用阿里云模型服务
在阿里云平台上,可以通过创建应用并使用模型服务完成特定任务,如生成文章内容。本示例展示了一段简化的Java代码,演示了如何调用阿里云模型服务生成关于“春秋战国经济与文化”的简短文章。示例代码通过设置系统角色为历史学家,并提出文章生成需求,最终处理并输出生成的文章内容。在实际部署前,请确保正确配置环境变量中的密钥和ID,并根据需要调整SDK导入语句及类名。更多详情和示例,请参考相关链接。
|
存储 Java API
【Azure 存储服务】Java Storage SDK 调用 uploadWithResponse 代码示例(询问ChatGTP得代码原型后人力验证)
【Azure 存储服务】Java Storage SDK 调用 uploadWithResponse 代码示例(询问ChatGTP得代码原型后人力验证)
289 0
|
Java Apache 开发工具
【Azure 事件中心】 org.slf4j.Logger 收集 Event Hub SDK(Java) 输出日志并以文件形式保存
【Azure 事件中心】 org.slf4j.Logger 收集 Event Hub SDK(Java) 输出日志并以文件形式保存
386 1
|
JSON Java API
【Azure API 管理】通过Java APIM SDK创建一个新的API,如何为Reqeust的Representation设置一个内容示例(Sample)?
【Azure API 管理】通过Java APIM SDK创建一个新的API,如何为Reqeust的Representation设置一个内容示例(Sample)?
234 0
|
存储 Java 开发工具
【Azure 存储服务】Java Azure Storage SDK V12使用Endpoint连接Blob Service遇见 The Azure Storage endpoint url is malformed
【Azure 存储服务】Java Azure Storage SDK V12使用Endpoint连接Blob Service遇见 The Azure Storage endpoint url is malformed
354 0
|
11月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
516 1

相关产品

  • 对象存储