재시도 및 시간 초과(Retries and Timeouts)

 

.NET 용 AWS SDK를 사용하면 AWS 서비스에 대한 HTTP 요청에 대한 재시도 횟수 및 시간 초과 값을 구성 할 수 있다. 재시도 및 시간 초과 값의 기본값이 응용 프로그램에 적합하지 않은 경우 특정 요구 사항에 맞게 조정할 수는 있지만 이를 수행하는 것이 응용 프로그램의 동작에 어떻게 영향을 미치는지 이해하는 것이 중요하다.

 

재시도 및 시간 초과에 사용할 값을 결정하려면 다음을 고려해야 한다.

  • 네트워크 연결이 저하되거나 AWS 서비스에 도달할 수 없을 때 .NET 용 AWS SDK 및 응용 프로그램이 어떻게 응답해야 하는가? 호출에 실패했을 때, 연결을 포기해야 하는가? 아니면 계속 호출을 재시도하도록 할 것인가?
  • 응용 프로그램이 응답성이 있어야하는 사용자 지향 응용 프로그램 또는 웹 사이트인가? 대기 시간 증가에 대한 내성이 더 높은 백그라운드 처리 작업인가?
  • 응용 프로그램이 대기 시간이 낮은 안정적인 네트워크를 대상으로 배포되었는가? 아니면 신뢰할 수없는 연결로 원격 위치에 배포되었는가?

 

 

재시도

 

.NET 용 AWS SDK는 서버 측 조절 또는 연결 끊김으로 인해 실패한 요청을 다시 시도한다. ClientConfig 클래스의 MaxErrorRetry 속성을 사용하여 서비스 클라이언트 수준에서 재시도 횟수를 지정할 수 있다. .NET 용 AWS SDK는 실패하고 예외를 throw하기 전에 지정된 횟수만큼 작업을 재시도한다. 기본적으로 MaxErrorRetry 속성은 AmazonDynamoDBConfig 클래스를 제외하고는 4로 설정되며, 기본값은 10회이다. 재시도가 발생하면 요청 대기 시간이 길어진다. 총 요청 대기 시간 및 오류율에 대한 응용 프로그램 제한을 기반으로 재시도를 구성해야 한다.

 

 

시간 초과

 

.NET 용 AWS SDK를 사용하면 서비스 클라이언트 수준에서 요청 시간 초과 및 소켓 읽기/쓰기 시간 초과 값을 구성할 수 있다. 이 값은 ClientConfig 클래스의 Timeout 및 ReadWriteTimeout 속성에 각각 지정된다. 이 값은 AWS 서비스 클라이언트 객체에 의해 생성된 HttpWebRequest 객체의 Timeout 및 ReadWriteTimeout 속성으로 전달된다. 기본적으로 Timeout 값은 100초이고 ReadWriteTimeout 값은 300초이다. 네트워크의 대기 시간이 길거나 작업을 다시 시도 할 수 있는 조건이 있는 경우 긴 시간 제한 값과 많은 재시도 횟수를 사용하면 일부 SDK 작업이 응답하지 않을 수 있다.

 

참고

이식 가능한 클래스 라이브러리(Portable Class Library, PCL)를 대상으로하는 .NET 용 AWS SDK 버전은 HttpWebRequest 클래스 대신 HttpClient 클래스를 사용하며 Timeout 속성만 지원한다.

 

다음은 기본 시간 초과 값에 대한 예외이다. 이 값은 명시적으로 시간 종료 값을 설정할 때 대체된다.

 

 

예제

 

다음 예제에서는 AmazonS3Client 객체에 대해 최대 2번의 재시도, 10초의 시간 초과 및 10초의 읽기/쓰기 시간 초과를 지정하는 방법을 보여준다.

 

var client =  new AmazonS3Client(
  new AmazonS3Config
  {
    Timeout = TimeSpan.FromSeconds(10),                 // Default value is 100 seconds
    ReadWriteTimeout = TimeSpan.FromSeconds(10),   // Default value is 300 seconds
    MaxErrorRetry = 2                                           // Default value is 4 retries
  });

 

 

[유니티 어필리에이트 프로그램]

아래의 링크를 통해 에셋을 구매하시거나 유니티를 구독하시면 수익의 일부가 베르에게 수수료로 지급되어 채널의 운영에 도움이 됩니다.

 

에셋스토어

여러분의 작업에 필요한 베스트 에셋을 찾아보세요. 유니티 에셋스토어가 2D, 3D 모델, SDK, 템플릿, 툴 등 여러분의 콘텐츠 제작에 날개를 달아줄 다양한 에셋을 제공합니다.

assetstore.unity.com

 

Easy 2D, 3D, VR, & AR software for cross-platform development of games and mobile apps. - Unity Store

Have a 2D, 3D, VR, or AR project that needs cross-platform functionality? We can help. Take a look at the easy-to-use Unity Plus real-time dev platform!

store.unity.com

 

Create 2D & 3D Experiences With Unity's Game Engine | Unity Pro - Unity Store

Unity Pro software is a real-time 3D platform for teams who want to design cross-platform, 2D, 3D, VR, AR & mobile experiences with a full suite of advanced tools.

store.unity.com

[투네이션]

 

-

 

toon.at

[Patreon]

 

WER's GAME DEVELOP CHANNEL님이 Game making class videos 창작 중 | Patreon

WER's GAME DEVELOP CHANNEL의 후원자가 되어보세요. 아티스트와 크리에이터를 위한 세계 최대의 멤버십 플랫폼에서 멤버십 전용 콘텐츠와 체험을 즐길 수 있습니다.

www.patreon.com

[디스코드 채널]

 

Join the 베르의 게임 개발 채널 Discord Server!

Check out the 베르의 게임 개발 채널 community on Discord - hang out with 399 other members and enjoy free voice and text chat.

discord.com

 

반응형

+ Recent posts