SQS - Long Polling, Request-Response Systems, FIFO Queue

Jihun Kim·2022년 4월 11일
0

aws solutions architect

목록 보기
49/57
post-thumbnail

Long Polling

  • 소비자가 대기열에 메시지를 요청했을 때 대기열에 아무 것도 없다면 메시지 도착을 기다리면 되는데 이를 롱 폴링 이라고 한다.
    - 즉, 계속 기다리고 있는 동안 메시지가 들어오면 그 때 해당 메시지를 받게 된다.
  • 이렇게 하는 이유는 두 가지이다.
    - 먼저, 계속 기다리고 있기 때문에 지연 시간을 줄일 수 있다.
    - 두 번째로는, SQS로 보내는 API 호출 수를 줄이기 위함이다.
  • 대기 시간은 1~20초 사이이다.
  • 롱 폴링은 대기열 레벨에서 활성화할 수도 있지만 API 호출시 WaitTimeSeconds를 설정해 활성화할 수도 있다.


Request-Response Systems

생산자가 SQS로 요청을 보낼 때 '대기열 1로 응답하시오'와 메시지를 생성했다고 가정해 보자. 그러면 응답자는 대기열에서 메시지를 폴링하고 해당 응답에 맞추어 대기열1이 없다면 생성해서 대기열1로 응답 페이로드를 보내게 된다.
이런 식으로 대기열2, 대기열3...을 생성할 수 있고 이러한 아키텍처를 request-response 시스템이라 하며 SQS Temporary Queue Client를 사용해 이러한 아키텍처를 구축할 수 있다.

가상의 대기열을 사용하기 때문에 비용면에서도 더 효율적이며 aws에서 관리해 주는 대기열이다.



FIFO Queue

  • 순서에 대한 보장이 있기 때문에 이 SQS 대기열은 제한된 처리량을 갖는다.
  • 묶음이 아닐 경우에는 초 당 300개의 메시지를 처리하고, 메시지를 묶음으로 보낼 경우 처리량은 초 당 3000개가 된다.
  • 중복을 제거해 정확히 한 번만 보낼 수 있게 해준다.
  • 메시지는 소비자에 의해 순서대로 처리 된다.
  • 큐의 이름은 .fifo로 끝나야 한다.
profile
쿄쿄

0개의 댓글