>  Q&A  >  본문

AWS SQS receiveMessage 요청한 것보다 적은 수의 메시지를 수신했습니까?

간단한 SQS가 구성되어 있고 4 메시지를 한 번에 처리하고 싶습니다. 내 테스트에서는 2 "사용 가능" 메시지가 있었습니다. 메시지를 받으면 한 번에 1만 생성됩니다. 내가 뭘 잘못했나요?

sqs = boto3.client('sqs')
response = sqs.receive_message(
    QueueUrl=queue_url,
    MaxNumberOfMessages=4
)

P粉894008490P粉894008490324일 전439

모든 응답(1)나는 대답할 것이다

  • P粉654894952

    P粉6548949522023-12-25 00:08:37

    당신은 아무 잘못도 하지 않았으며 이러한 행동은 정상입니다.

    이는 SQS(및 대부분의 AWS 서비스)의 분산 특성 때문입니다. 기본적으로 모든 노드에 사용 가능한 모든 메시지가 있는 것은 아니며, 사용 가능한 경우 대화 중인 노드는 0에서 MaxNumberOfMessages 사이의 숫자를 반환할 수 있습니다. 단일 호출에서 실제로 여러 메시지를 받으려면 대기열에 100개 또는 1000개 이상의 메시지가 있어야 하며, 그래도 운이 좋지 않아 메시지를 거의 받지 못할 수도 있습니다.

    문서에서:

    회신하다
    0
  • 취소회신하다