jclouds 2.5.0调用getBlob时getBucketLocation超时问题求助
jclouds 2.5.0 S3 getBucketLocation超时重试问题及相关疑问
问题场景
使用jclouds 2.5.0版本,多数部署环境运行正常,但某一环境出现异常:调用getBlob时触发的getBucketLocation请求超时挂起,重试5次后失败,占用了Blob下载的大部分时间。后续getBlob会尝试用默认区域(us-east-1)下载Blob,虽因桶实际在us-west-2导致耗时略长,但核心性能瓶颈是getBucketLocation的失败调用。
报错日志
2022-07-14 21:37:29.263 +0000,3124098302712886 {} ERROR o.j.h.h.BackoffLimitedRetryHandler [clrd-highpri-1] Cannot retry after server error, command has exceeded retry limit 5: [method=org.jclouds.aws.s3.AWSS3Client.public abstract java.lang.String org.jclouds.s3.S3Client.getBucketLocation(java.lang.String)[hammerspace-data-bucket-us-west-2], request=GET https://s3.amazonaws.com/hammerspace-data-bucket-us-west-2?location HTTP/1.1]
疑问
- 是否有人遇到过类似的
getBucketLocation超时重试问题? - 如何在jclouds 2.5.0中开启详细日志?此前在log4j2.xml中取消以下配置注释即可,但当前版本不再生效:
<!-- <logger name="org.jclouds" level="debug" additivity="true" /> --> <!-- <logger name="jclouds.compute" level="debug" additivity="true" /> --> <!-- <logger name="jclouds.wire" level="debug" additivity="true" /> --> <!-- <logger name="jclouds.headers" level="debug" additivity="true" /> --> <!-- <logger name="jclouds.ssh" level="debug" additivity="true" /> --> <!-- <logger name="software.amazon.awssdk" level="debug" additivity="true" /> --> <!-- <logger name="org.apache.http.wire" level="debug" additivity="true" /> --> - 如何阻止
getBlob调用getBucketLocation?希望能预先指定目标存储桶的区域,避免自动解析。
更新1
最初怀疑是IAM配置问题,但同一主机上使用AWS命令行工具操作该存储桶无挂起现象,仅jclouds出现getBucketLocation挂起,推测是jclouds 2.5.0与AWS Provider的内部问题。
内容的提问来源于stack exchange,提问作者John Calcote
相关产品推荐
相关产品推荐

