My Space

반응형

Simple Queue Service

: 해야 할 일을 나중에 처리하거나, 다른 시스템이 처리 할 수 있도록 하기 위한

비동기 메시징 서비스.

: SQS는 메시지의 저장소로 처리해야 할 업무에 대한 TODO 리스트와 같은 역할을 한다.

ex) 신규글이 작성되면 그 글을 구독하는 사람들에게 새로운 글이 작성되었음을 알리는 시스템이 있다고 하면,

신규글을 작성했을 때 모든 구독자에게 이메일을 발송하면 구독자가 많은 글의 경우 매우 오랜시간 사용자를 

대기해야 한다. SQS를 사용하면 신규글이 작성되었을 때 신규글이 작성되었음을 SQS에 발행하고, 

백그라운드에서 SQS를 처리하도록 하면 사용자의 대기 시간을 줄일 수 있다.


즉, 글이작성 -> SQS에 신규글 작성 저장 -> 다른 사용자들의 요청에 대한 응답. 

     백그라운드에선 SQS 처리로 순차적 알림 발송

 

(안좋은 방식) 한 클라이언트가 요청하고 이메일 발송동안 대기해야함

 

SQS를 사용한 방식

 

 

상세 프로세스

사용자가 글을 올리면 그 올린 글에 대한 정보를 SQS서버에 send한다.

처리하는 곳에서는 주기적으로 SQS에 올라온 것이 있는지 보고 있을 경우 receive 한다.

기본적으로 SQS에 visibility timeout:30 초로 되어있는데 이는 안보이게 하는 시간을 의미하고

목적은 처리하는 곳에서 SQS의 데이터를 가져갔을때 가져간 정보를 숨김처리해서 다른 처리하는 곳에서 

중복적으로 가져가는 것을 방지하기 위함이고, 먼저 가져간 곳에서 에러로 인해 정상작동이 안되었을 시

다시 보이게 하여 다른 곳에서 가져갈 수 있게 한다.

최종적으로 SQS에서 데이터를 가져가 처리를 완료하면 마지막에 가져온 큐의 정보를 삭제한다.

 

 

참고 

생활코딩 Simple Quque Service(SQS)

'Development > AWS' 카테고리의 다른 글

(AWS) EC2 서버 디스크 용량 확장  (0) 2021.12.02

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading