메시지 큐란?, 동기과 비동기

infoqoch·2021년 4월 28일
0

개발

목록 보기
5/6

클라이언트의 요청에 서버는 즉각적으로 대답해야 하는가?

  • 앞서 블로그에서 동기와 비동기에 대해 이야기해봤다. 동기는 요청과 응답으로 이뤄진 일종의 절차적인 작업처리 방식이다.
  • 메시지큐는 이와 달리 비동기적 방식이다. 요청과 응답이 반드시 일치할 필요가 없다.
  • 메일 시스템이 메시지 큐의 대표적인 방식이다. 송신자가 메일을 지메일에 보낸다. 수신자는 가능할 때 메일함에서 메일을 확인하여 처리한다. 발신자는 수신자의 메시지를 반드시 즉각적으로 응답할 필요가 없고, 수신자 역시 그것을 기대하지 않는다. 오히려 답변이 바로 오면 메일에 오류가 생겼는지 의심할테다.
  • 지메일의 역할이 메시지큐에서 메시지 서버의 역할이다. 클라이언트의 요청이 메시지 서버에 쌓이고, 서버는 메시지 서버의 요청을 가용한 상황에서 처리한다.

메시지 큐의 장점

  • 서버가 멈추거나 사용 불가능 한 경우, 클라이언트의 요청 자체가 받아드려지지 않을 수 있음. 메시지서버를 통해 서버가 멈추더라도 클라이언트의 요청이 저장되고, 서버가 회복된 이후 요청을 처리할 수 있음.
  • 자원을 효율적으로 사용가능. 요청과 응답이 일치하게 되면, 클라이언트는 서버의 응답을 대기해야만 함. 대기시간을 제거하고, 클라이언트는 다른 작업을 수행할 수 있음.
  • 다만, 응답시간에 대한 약속이 필요. 즉각적인 응답이 필요 없다 하더라도, 1초, 1분, 1시간, 10일 등 클라이언트가 기대하는 응답시간이 있을 것임. 메일을 작성하더라도 3월 7일 이내에는 답변주세요, 라는 요청은 있을테니. 이러한 응답시간을 서버는 보장해야 함.
profile
JAVA web developer

0개의 댓글