메시지 큐

고장난 고양이·2022년 7월 18일
0

개발지식

목록 보기
17/25
post-custom-banner

✅ 메시지 큐(Message Queue)란?

프로세스 간에 데이터를 교환할 때 사용되는 통신방법 중에 하나이다.

더 큰 개념으로는 MOM(Message Oriented Middleware: 메세지 지향 미들웨어)를 의미한다.
MOM이란 비동기 메세지를 사용하는 프로그램 간 데이터 송수신을 의미하며, MOM을 구현한 서비스를 MQ라고 한다.

장점

비동기

  • 메시지 큐는 생산된 메시지의 저장, 전송에 대해 동기화 처리를 진행하지 않고, 큐에 넣어 두기 때문에 나중에 처리할 수 있다.
  • 여기서, 기존 동기화 방식은 많은 메시지(데이터)가 전송될 경우 병목이 생길 수 있고, 뒤에 들어오는 요청에 대한 응답이 지연될 것이다.

낮은 결합도

  • 생산자 서비스와 소비자 서비스가 독립적으로 행동하게 됨으로써 서비스 간 결합도가 낮아진다.
  • 즉, 어플리케이션과 분리가능하다.

확장성

  • 생산자 서비스 혹은 소비자 서비스를 원하는 대로 확장할 수 있기 때문에 확장성이 좋다.

탄력성

  • 소비자 서비스가 다운되더라도 어플리케이션이 중단되는 것은 아니다. 메시지는 메시지 큐에 남아 있다.
  • 소비자 서비스가 다시 시작될 때마다 추가 설정이나 작업을 수행하지 않고도 메시지 처리를 시작할 수 있다.

보장성

  • 메시지 큐는 큐에 보관되는 모든 메시지가 결국 소비자 서비스에게 전달된다는 일반적인 보장을 제공한다.

사용 예시

대용량 데이터를 처리하기 위한 배치 작업이나, 채팅 서비스, 비동기 데이터를 처리할 때 사용

프로세스 단위로 처리하는 웹 요청이나 일반적인 프로그램을 만들어서 사용하는데 사용자가 많아지거나 데이터가 많아지면 요청에 대한 응답을 기다리는 수가 증가하다가 나중에는 대기 시간이 지연되어서 서비스가 정상적으로 되지 못하는 상황이 오게 됩니다.

따라서 기존에 분산되어 있던 데이터 처리를 한 곳에 집중하면서 메세지 브로커를 두어서 필요한 프로그램에 작업을 분산시키는 방법을 하는 것이 그 목적입니다.

참고
https://heeonii.tistory.com/17
https://tecoble.techcourse.co.kr/post/2021-09-19-message-queue/
https://velog.io/@kimjaejung96/%EB%A9%94%EC%84%B8%EC%A7%80-%ED%81%90Message-Queue%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80

profile
개발새발X발일지
post-custom-banner

0개의 댓글