Queue System / / 2024. 1. 21. 21:25

Message Queue vs Event Queue

계기

  • 실무에서 B2B 환경을 많아 개발하면서 비동기 작업이나 트래픽이 많이 다루지 않았습니다.
  • 최근 프로젝트에서는 비동기 프로세스들이 많게 되었는데, 단일 Application에서는 문제없이 동작하지만 클러스터링을 하였을 때 각 노드 또는 파드에서 동시성 이슈 및 데이터 무결성에 문제가 발생할 것이 예상되었습니다.
  • 비동기 프로세스들이 단계를 가지고 처리되다 보니 코드에서 결합도가 높아지고 의존성이 높아지는 문제가 발생하였습니다.
  • 위 문제들을 해결하기 위해서 메세지 또는 이벤트 기반의 Application으로 변경을 고려하고 있습니다.
  • 따라서 메세지 브로커의 역할을 할 수 있는 Kafka, RabbitMQ 등 들어봤지만 정확히 모르기에 공부를 시작하였습니다.

 

 

간단 비교

  Message Queue Event Queue
용도 메세지를 시스템이나 서비스에 전달하는데 사용됩니다. 이벤트나 상태 변경을 다른 시스템 또는 서비스에 전달하는데 사용됩니다.
저장방식 메세지를 순차적으로 저장합니다. 이벤트를 순차적으로 저장합니다.
처리방식 큐에 입력된 메세지를 순차적으로 처리합니다. 큐에 입력된 이벤트를 순차적으로 처리합니다.
처리결과 일반적으로 소비 후에 큐에서 제거되지만, 필요에 따라 지속적으로 저장할 수도 있습니다 일반적으로 큐에서 제거되며, 이벤트의 처리 여부는 해당 시스템의 상태나 로직에 따라 다를 수 있습니다.
목적 시스템 간의 결합도를 낮추고, 비동기 통신을 가능하게 하는 것입니다. 이벤트 기반 아키텍처에서의 비동기 이벤트 처리를 가능하게 하는 것이며, 이를 통해 시스템 간의 결합도를 낮추는 역할을 합니다.
플랫폼 RabbitMQ Kafka

 

'Queue System' 카테고리의 다른 글

RabbitMQ (4)  (0) 2024.02.17
RabbitMQ (3)  (0) 2024.01.24
RabbitMQ (2)  (0) 2024.01.23
RabbitMQ (1)  (0) 2024.01.22
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유