aws java sdk v2

aws版本是2.21.40

部署到tomcat9上運行一段時間就會卡死,client 無法創建,可能是pool滿了,加入

報錯如下:the client has "experienced" too many recent call failures

1.請求太多,並發量太大

2.s3client用的apache client加入配置如下

ClientOverrideConfiguration clientOverrideConfiguration =
             ClientOverrideConfiguration.builder()
                             .retryPolicy(RetryPolicy.builder().numRetries(0).build())
                             .build();

3.最重要的是加入配置maxConnections(300),另外更改查詢文件是否存在

HeadObjectRequest req = HeadObjectRequest.builder()
                 .bucket(Constants.awsPath.bucketName)
                 .key(keyName)
                 .build();
         try {
             return s3Client.headObject(req);
         } catch (NoSuchKeyException e) {
             return null;
         }

4.预签名设置加入

s3Presigner = DefaultS3Presigner
             .builder().s3Client(s3Client)

應該是設置url存活時間太長了,導致服務端在頻繁請求時不再分配Token,導致client無法請求,最後設置預簽名b.signatureDuration(Duration.ofMinutes(1));

目前觀察中

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值