Amazon SQS 대기열 유형 - Amazon Simple Queue Service

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon SQS 대기열 유형

Amazon은 표준 대기열과 대기열이라는 두 가지 유형의 FIFO 대기열을 SQS 지원합니다. 다음 표의 정보를 사용하여 상황에 맞는 대기열을 선택하세요. Amazon SQS 대기열에 대한 자세한 내용은 Amazon SQS 표준 대기열 및 섹션을 참조하세요Amazon SQS FIFO 대기열.

표준 대기열 FIFO 대기열

무제한 처리량 - 표준 대기열은 초당, 작업당(, ReceiveMessage또는 SendMessage) 매우 높고 거의 무제한에 가까운 API 호출 수를 지원합니다DeleteMessage. 이렇게 처리량이 높기 때문에 실시간 데이터 스트리밍 또는 대규모 애플리케이션과 같이 대량의 메시지를 빠르게 처리해야 하는 사용 사례에 적합합니다. 표준 대기열은 수요에 따라 자동으로 확장되지만 특히 워크로드가 많은 리전에서는 최적의 성능을 보장하기 위해 사용 패턴을 모니터링하는 것이 중요합니다.

At-least-once 배달 - 배달 보장 at-least-once - 모든 메시지가 한 번 이상 배달되지만 경우에 따라 재시도 또는 네트워크 지연으로 인해 메시지가 한 번 이상 배달될 수 있습니다. 동일한 메시지를 여러 번 처리해도 시스템 상태에 영향을 주지 않도록 idempotent 작업을 사용하여 잠재적인 중복 메시지를 처리하도록 애플리케이션을 설계해야 합니다.

최선의 노력 주문 - 최선의 노력을 다하는 주문을 제공합니다. 즉, Amazon은 메시지를 전송된 순서대로 전송하려고 SQS 시도하지만 이를 보장하지는 않습니다. 경우에 따라 특히 처리량이 많거나 장애가 복구되는 조건에서 메시지가 잘못 도착할 수 있습니다. 메시지 처리 순서가 중요한 애플리케이션의 경우 애플리케이션 내에서 재주문 로직을 처리하거나 엄격한 주문 보장을 위해 FIFO 대기열을 사용해야 합니다.

내구성 및 중복성 - 표준 대기열은 여러 AWS 가용 영역에 걸쳐 각 메시지의 여러 복사본을 저장하여 높은 내구성을 보장합니다. 이렇게 하면 인프라 장애가 발생하더라도 메시지가 손실되지 않습니다.

가시성 제한 시간 - Amazon을 SQS 사용하면 메시지가 수신된 후 숨겨진 기간을 제어하도록 가시성 제한 시간을 구성할 수 있으므로 다른 소비자가 메시지를 완전히 처리하거나 제한 시간이 만료될 때까지 메시지를 처리하지 않도록 할 수 있습니다.

처리량 높음 - 일괄 처리를 사용하는 경우 FIFO 대기열은 API 메서드(, 또는 )당 초당 최대 SendMessageBatch3ReceiveMessageBatch,000개의 메시지를 처리합니다DeleteMessageBatch. 이 처리량은 초당 300개의 API 호출에 의존하며, 각 API 호출은 10개의 messages.By 배치를 처리하여 처리량이 높은 모드를 가능하게 합니다. 메시지 그룹 내에서 편하게 정렬하여 초당 최대 30,000개의 트랜잭션(TPS)을 확장할 수 있습니다. 배치화 없이 FIFO 대기열은 API 메서드(, ReceiveMessage또는 )당 초당 최대 SendMessage300개의 API 호출을 지원합니다DeleteMessage. 처리량이 더 필요한 경우 AWS 지원 센터 를 통해 할당량 증가를 요청할 수 있습니다. High-throughput 모드를 활성화하려면 섹션을 참조하세요Amazon SQS에서 FIFO 대기열의 높은 처리량 지원.

정확히 한 번 처리 - FIFO 대기열은 각 메시지를 한 번 전송하고 이를 처리하고 삭제할 때까지 사용할 수 있도록 유지합니다. MessageDeduplicationId 또는 콘텐츠 기반 중복 제거와 같은 기능을 사용하면 네트워크 문제 또는 제한 시간으로 인해 재시도하는 경우에도 중복 메시지를 방지할 수 있습니다.

First-in-first-out 전송 - FIFO 대기열은 각 메시지 그룹 내에서 전송된 순서대로 메시지를 수신하도록 합니다. 여러 그룹에 메시지를 배포하여 각 그룹 내에서 순서를 유지하면서 병렬로 처리할 수 있습니다.

표준 대기열 메시지 전송.
FIFO 대기열 메시지 전송.
처리량이 중요한 경우 표준 대기열을 사용하여 애플리케이션 간에 데이터를 전송합니다. 예:
  • 실시간 사용자 요청을 집중적인 백그라운드 작업에서 분리합니다. 백그라운드에서 크기 조정 또는 인코딩과 같은 작업을 처리하는 동안 사용자가 미디어를 빠르게 업로드할 수 있으므로 시스템에 과부하를 가하지 않고도 응답 시간이 빨라집니다.

  • 여러 작업자 노드에 작업을 할당합니다. 여러 작업자 노드에 많은 수의 신용 카드 검증 요청을 배포하고 처리 오류를 방지하기 위해 무능한 작업으로 중복 메시지를 처리합니다.

  • 향후 처리를 위한 배치 메시지입니다. 데이터베이스에 배치를 추가하기 위해 여러 항목을 대기열에 추가합니다. 메시지 순서가 보장되지 않으므로 필요한 경우 처리를 처리할 out-of-order 수 있도록 시스템을 설계합니다.

이벤트 순서가 중요한 경우 FIFO 대기열을 사용하여 애플리케이션 간에 데이터를 전송합니다. 예:

  • 사용자가 입력한 명령이 올바른 순서로 실행되었는지 확인합니다. 이는 명령 순서가 중요한 FIFO 대기열의 주요 사용 사례입니다. 예를 들어 사용자가 애플리케이션에서 일련의 작업을 수행하는 경우 FIFO 대기열은 작업이 입력된 순서와 동일한 순서로 처리되도록 합니다.

  • 가격 수정을 올바른 순서로 전송하여 올바른 제품 가격을 표시합니다. FIFO 대기열은 제품 가격에 대한 여러 업데이트가 도착하고 순차적으로 처리되도록 합니다. FIFO가 없으면 가격 인상 후 가격 인하가 처리되어 잘못된 데이터가 표시될 수 있습니다.

  • 계정을 등록하기 전에 학생이 과정에 등록하지 못하도록 하세요. FIFO 대기열을 사용하면 등록 프로세스가 올바른 순서로 수행되도록 할 수 있습니다. 시스템은 먼저 계정 등록을 처리한 다음 과정 등록을 처리하여 등록 요청이 조기에 실행되지 않도록 합니다.