FIFO아마존의 큐 딜리버리 로직 SQS - Amazon Simple Queue Service

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

FIFO아마존의 큐 딜리버리 로직 SQS

다음 개념은 메시지를 주고 받는 방법을 더 잘 이해하는 데 도움이 될 수 FIFO 있습니다.

메시지 전송

각각 고유한 메시지 중복 제거 ID를 가진 여러 메시지가 FIFO 대기열에 연속으로 전송되는 경우 Amazon은 메시지를 SQS 저장하고 전송을 승인합니다. 그리고 나면, 각 메시지는 메시지가 전송된 순서와 정확히 같은 순서로 수신 및 처리될 수 있습니다.

FIFO대기열에서 메시지는 메시지 그룹 ID를 기준으로 정렬됩니다. 여러 호스트 (또는 동일한 호스트의 다른 스레드) 가 동일한 메시지 그룹 ID를 가진 메시지를 FIFO 대기열로 보내는 경우 Amazon은 처리를 위해 메시지가 도착한 순서대로 메시지를 SQS 저장합니다. Amazon이 메시지를 보내고 받는 순서를 SQS 보존하려면 각 프로듀서가 고유한 메시지 그룹 ID를 사용하여 모든 메시지를 보내야 합니다.

FIFO큐 로직은 메시지 그룹 ID별로만 적용됩니다. 각 메시지 그룹 ID는 Amazon SQS 대기열 내의 순서가 지정된 고유한 메시지 그룹을 나타냅니다. 각각의 메시지 그룹 ID의 경우, 모든 메시지가 엄격한 순서로 전송되고 수신됩니다. 그렇지만, 메시지 그룹 ID 값이 다른 메시지는 다른 순서로 전송 및 수신될 수 있습니다. 메시지 그룹 ID를 메시지와 연결해야 합니다. 사용자가 메시지 그룹 ID를 지정하지 않으면 작업에 실패합니다. 정렬된 메시지의 단일 그룹이 필요한 경우 FIFO 대기열로 전송되는 메시지에도 동일한 메시지 그룹 ID를 제공하십시오.

메시지 수신

특정 메시지 그룹 ID를 사용하는 메시지를 수신하도록 요청할 수 없습니다.

여러 메시지 그룹이 있는 FIFO 대기열에서 메시지를 수신할 IDs 경우 Amazon은 SQS 먼저 메시지 그룹 ID가 동일한 메시지를 최대한 많이 반환하려고 시도합니다. 따라서 다른 소비자들은 메시지 그룹 ID가 다른 메시지를 처리할 수 있습니다. 메시지 그룹 ID가 있는 메시지를 수신한 경우, 동일한 메시지 그룹 ID에 대한 메시지는 그 메시지를 삭제하거나 메시지가 표시되는 경우가 아니라면 더 이상 반환되지 않습니다.

참고

MaxNumberOfMessages 작업의 ReceiveMessage 요청 파라미터를 사용하여 단일 호출로 최대 10개 메시지를 받을 수 있습니다. 이러한 메시지는 FIFO 순서를 유지하며 메시지 그룹 ID가 같을 수 있습니다. 따라서 동일한 메시지 그룹 ID로 사용할 수 있는 메시지가 10개 미만인 경우 다른 메시지 그룹 ID로부터 메시지를 10개의 메시지로 구성된 동일한 일괄 처리로 받을 수 있지만 여전히 FIFO 순서대로 메시지를 받을 수 있습니다.

다수의 재시도 횟수

FIFO대기열을 사용하면 생산자 또는 소비자가 여러 번 재시도를 시도할 수 있습니다.

  • 생성자가 실패한 SendMessage 작업을 감지한 경우, 동일한 메시지 중복 제거 ID를 사용하여 필요한 횟수 만큼 여러 번 재전송을 시도할 수 있습니다. 생성자가 중복 제거 간격이 만료되기 전에 최소 한 개의 승인을 수신한다고 가정하면 여러 번 재시도를 해도 메시지의 순서에 영향을 미치지도 복제를 도입하지도 않습니다.

  • 소비자가 실패한 ReceiveMessage 작업을 감지한 경우, 동일한 수신 요청 시도 ID를 사용하여 필요한 횟수 만큼 여러 번 재시도할 수 있습니다. 소비자가 제한 시간 초과가 만료되기 전에 최소 한 개의 승인을 수신한다고 가정하면 여러 번 재시도를 해도 메시지의 순서에는 영향을 미치지 않습니다.

  • 메시지 그룹 ID가 있는 메시지를 수신한 경우, 동일한 메시지 그룹 ID에 대한 메시지는 그 메시지를 삭제하거나 메시지가 표시되는 경우가 아니라면 더 이상 반환되지 않습니다.