SQS는 Send message (producer)와 Receive message (consumer)가 분리되어있다.

Receive count가 2인 이유는, consumer가 메시지를 받은 후에 processing을 정해진 시간 (polling duration) 안에 해야되는데

그걸 안해가지고 다시 queue로 돌아온거다.

 

그럼 정상 작동 하게 하는 방법은 뭘까?

 

바로 delete를 하는거다.

Queue에서 message가 delete가 되면, 메시지가 정상적으로 처리되었음을 의미하기 때문이다.

 

번외)

Purge는 Queue에 있는 모든 메시지를 삭제하는거다.

개발 환경에서는 아주 도움이 될거고, 프로덕션 환경에서는 쓰면 안된다. ㅎ

 

Consumer가 polling을 하면 일정 시간(30초)동안은 다른 consumer가 해당 message를 읽을 수 없다.

30초안에 해당 메시지가 처리되지 않으면, 해당 메시지는 다른 consumer들이 다시 읽을 수 있다.

 

만약에 consumer가 message를 처리할만한 충분한 시간이 없다면, ChangeMessageVisibility API를 호출해야한다.

 

Q) 그럼 동시에 여러 consumer가 message를 받을 수는 없나봄? 구조상.

 

큐에 아무것도 없을 때, consumer가 메시지가 도착할 때까지 기다릴 수 있는데

이걸 Long Polling이라고 부른다.

 

Q) LongPolling이 효율성을 증대시키고 애플리케이션 레이턴시를 줄이면서 SQS에 대한 API 호출의 수를 줄인대.

-> 이게 무슨 소리인지 이해가 안가네?

LongPolling 하는게 어떻게 API 호출의 수를 줄여?

https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-short-and-long-polling.html

 

Amazon SQS short and long polling - Amazon Simple Queue Service

Thanks for letting us know this page needs work. We're sorry we let you down. If you've got a moment, please tell us how we can make the documentation better.

docs.aws.amazon.com

short polling은 메시지가 있으면 바로 큐에서 메시지 가져오는거고, 없으면 빠져나오는거

long polling은 메시지가 있으면 바로 큐에서 메시지 가져오는거고, 큐에서 메시지 없으면 도착할 때까지 일정 시간 기다리는거

-> 그러면 short polling은 메시지가 없으면 무조건 empty response를 받는거네.

 

http://pyrasis.com/book/TheArtOfAmazonWebServices/Chapter28

 

PYRASIS.COM: 아마존 웹 서비스를 다루는 기술 28장 메시지 큐를 제공하는 SQS

저작권 안내 책 또는 웹사이트의 내용을 복제하여 다른 곳에 게시하는 것을 금지합니다.책 또는 웹사이트의 내용을 발췌, 요약하여 발표 자료, 블로그 포스팅 등으로 만드는 것을 금지합니다.

pyrasis.com

 

Short Polling과 Long Polling이 이해가 안갔다...

https://lannstark.tistory.com/86

 

[AWS SQS 들이파기] SQS에서 메시지 받기 II (Java + Gradle + Spring)

모든 코드는 github에 올라가 있습니다. SQS로부터 메시지를 받는 두 번째 방법은~~ 바로바로 Annotation을 이용하는 방법입니다. 아래의 PersonListener 코드를 봐보죠! @Slf4j @Component // Bean 등록을 꼭 해..

lannstark.tistory.com

 

음 SQS 아키텍처를 좀 봐야 이해가 가겠다.

 

https://docs.aws.amazon.com/ko_kr/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-basic-architecture.html

 

Amazon SQS 기본 아키텍처 - Amazon Simple Queue Service

Amazon SQS는 최대 메시지 보존 기간 넘게 대기열에 유지된 메시지를 자동으로 삭제합니다. 기본 메시지 보존 기간은 4일입니다. 그러나 SetQueueAttributes 작업을 사용하면 메시지 보존 기간을 60초에

docs.aws.amazon.com

졸라 대충 나와있네...

메시지를 받았을 때, scalability와 durability를 위해서 분산 저장을 하는건 알겠어.

그러면 consumer가 queue에서 message 처리하면, 모든 서버에서 해당 메시지가 싹 사라지는거야?

 

내가 polling의 개념을 모르는 것 같다.

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기