2016-10-19 2 views
2

http://docs.aws.amazon.com/general/latest/gr/api-retries.htmlAPI 재시도 논리는

이 문서는 "각 AWS SDK는 자동 재시도 논리와 Java 용 AWS SDK는 요청을 자동으로 재 시도를 구현한다."고 언급

재시도 구성을 지정하지 않으면 Java AWS SDK의 기본 메커니즘은 무엇입니까? Java AWS SDK를 사용하여 AWS 서비스 측에서 문제가 발생하면 간단한 서비스 예외가 발생합니다. 나는 결코 "자동"재시도 메커니즘을 경험하지 못했다. 누군가이 재시도 메커니즘이 무엇인지 설명 할 수 있습니까?

+1

Java SDK의 기본 메커니즘은 없습니다. Amazon 사용자가 Java로 작성한 AWS SDK 코드에는 기본적으로 클라이언트 요청 재 시도가 포함됩니다. 즉, Server Busy, Throttled 등의 오류로 인해 클라이언트 요청이 서버에 연결하지 못하면 다시 연결을 시도합니다. 'ClientConfiguration' 클래스를 사용하여 시도 횟수를 설정할 수 있습니다. – Abhineet

+0

java sdk를 사용하는 경우 자동 재 시도가 적용되지 않습니다. aws sdk를 사용하면 자동 회신이 적용됩니다. – notionquest

답변

4

같은 문서 페이지는 말한다 :

Java 용 AWS SDK는 자동으로 요청을 재 시도하고 ClientConfiguration 클래스를 사용하여 재시도 설정을 구성 할 수 있습니다.

ClientConfiguration에 대한 공식 설명서를 확인해야하며 재시도 논리와 관련된 동작을 조정할 수있는 많은 방법이 있습니다. 여기에 가장 중요하다 밀리 초 (

  • withRequestTimeout기다리는 시간을 설정합니다 :

    • withMaxErrorRetry실패 다시 시도 요청 (서비스의 5XX 오류 응답 예)에 대한 재 시도의 최대 수를 설정) 요청을 완료하고 시간을 초과하기 전에 완료해야합니다. [...]
    • withThrottledRetries재시도 제한은 많은 요청이 실패하고 재 시도가 실패 할 때 재 시도를 지능적으로 제한하는 기능입니다 UL [...]
    • withRetryPolicy 이것은 당신이 RetryPolicy 변경을 선택할 수 있습니다, 가장 재미있다 :
      • BackoffStrategy사용자 정의 백 오프 재시도을 사이에 수면 시간을 제어하기위한 전략을 제공하는 후크
      • RetryCondition실패한 요청을 시도할지 여부에 대한 사용자 정의 조건을 제공하는 후크를
      • maxErrorRetry
      • ,
      • honorMaxErrorRetryInClientConfig

    은 또한 당신이 자동 재시도 메커니즘을 발견하지 않은 경우,이 때문에 클라이언트 측 오류 일 수 있습니다 (위에서 언급 한 구성 설정을 존중할지 여부). 다시

    을 시도하기 전에 문제를 해결하기 위해 요청을 개정 할 필요가 있음을 나타냅니다

    클라이언트 오류 (4XX) :이 설정은 서버 (5XX) 또는 조절 오류의 경우 재 시도 요청만을위한 "서비스 측면"이라고 주장하는 경우 상황을 재현하고 실제로 발생하는 것을 분석 할 수있는 코드를 제공해야합니다.기본값에 대한 지금


    :

    내가 어떤 재시도 설정을 지정하지 않은 경우 자바 SDK의 기본 메커니즘은 무엇입니까?

    ClientConfigurationconstant fields의 기본값을 조회 할 수 있습니다. 그러나 사용하는 서비스에 따라 다를 수 있습니다 (특히 DynamoDB는 특별한 경우 임). PredefinedClientConfigurationsPredefinedRetryPolicies 클래스도 확인하십시오.