Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java AmazonWeb服务中的API重试逻辑_Java_Amazon Web Services_Amazon Ec2_Aws Java Sdk - Fatal编程技术网

Java AmazonWeb服务中的API重试逻辑

Java AmazonWeb服务中的API重试逻辑,java,amazon-web-services,amazon-ec2,aws-java-sdk,Java,Amazon Web Services,Amazon Ec2,Aws Java Sdk,本文档提到“每个AWS SDK实现自动重试逻辑,AWS SDK for Java自动重试请求。” 如果我没有指定任何重试配置,Java AWS SDK的默认机制是什么?我一直在使用JavaAWSSDK,如果AWS服务端出现故障,我会得到一个简单的服务异常。我从未经历过任何“自动”重试机制。有人能解释一下这种重试机制是什么吗?同一文档页上说: AWS SDK for Java自动重试请求,您可以使用ClientConfiguration类配置重试设置 您应该查看官方文档以了解,它有很多方法可以调整

本文档提到“每个AWS SDK实现自动重试逻辑,AWS SDK for Java自动重试请求。”


如果我没有指定任何重试配置,Java AWS SDK的默认机制是什么?我一直在使用JavaAWSSDK,如果AWS服务端出现故障,我会得到一个简单的服务异常。我从未经历过任何“自动”重试机制。有人能解释一下这种重试机制是什么吗?

同一文档页上说:

AWS SDK for Java自动重试请求,您可以使用
ClientConfiguration
类配置重试设置

您应该查看官方文档以了解,它有很多方法可以调整其重试逻辑行为。以下是最重要的:

  • 设置失败的可重试请求的最大重试次数(例如:来自服务的5xx错误响应)
  • 设置请求在放弃和超时之前等待完成的时间量(毫秒)[…]
  • 重试限制是一项功能,当大量请求失败且重试不成功时,它可以智能地限制重试尝试[…]
  • 这是最有趣的,它允许您选择和更改:
    • 用于提供自定义退避策略以控制重试之间的睡眠时间的钩子
    • 用于提供是否应重试失败请求的自定义条件的挂钩
    • maxErrorRetry
    • honorMaxErrorRetryInClientConfig
      (是否遵守上述配置设置)
另外请注意,如果您没有注意到自动重试机制,则可能是由于客户端错误造成的。这些设置仅用于在出现服务器(5xx)或节流错误时重试请求:

客户端错误(4xx)表示您需要修改请求以更正问题,然后重试

如果您声称“服务端”出现了故障,那么应该提供一些代码来重现这种情况并分析实际发生的情况


关于默认设置:

如果我没有指定任何重试配置,Java SDK的默认机制是什么


您可以查找
ClientConfiguration
的默认值。但请注意,它可能因您使用的服务而异(尤其是DynamoDB是一种特殊情况)。同时检查和类。

Java SDK没有默认机制。AmazonGuys用Java编写的AWSSDK代码默认包括重试客户端请求。这意味着,如果客户机请求由于某些错误(如服务器繁忙、限制等)而无法连接到服务器,它将重试建立连接。可以使用
ClientConfiguration
class配置尝试次数。如果您使用的是java sdk,则自动重试不适用。如果您使用aws sdk,则自动回复适用。我是aws新手,我的要求是在不同的bucket之间进行复制,如果在复制或读取对象时发生任何异常,则应重试该方法。我使用的是SpringBoot、java、AWSSDK1.11.x。你能提供一些例子吗?很抱歉,但是我认为如果你有一些细节没有在这个一般性的回答中涵盖,你应该把它作为一个问题(提到这个问题),这样就可以单独回答了。