이벤트 브로커와 메시지 브로커의 차이점

Kafka, RabbitMQ, Redis 등 메시징 플랫폼은 메시지 브로커와 이벤트 브로커 두 가지 종류로 나뉨

1. 메시지 브로커

메시지 브로커는 많은 기업들에서 대규모 메시지 기반 미들웨어 아키텍처에서 사용되어 옴

메시지 브로커에 있는 큐에 데이터를 보내고 받는 프로듀서와 컨슈머를 통해 메시지를 통신하고 네트워크를 맺는 용도로 사용해옴

(미들웨어 : 서비스하는 애플리케이션들을 보다 효율적으로 아키텍처들을 연결하는 요소들로 작동하는 소프트웨어로 메시징 플랫폼, 인증 플랫폼, 데이터베이스 등이 있음)

1-1. 메시지 브로커의 특징

  • 메시지를 받아서 적절히 처리하고 나면 즉시 또는 짧은 시간 내에 삭제되는 구조
  • 메시지 브로커는 데이터를 보내고, 처리하고 삭제함
    • 레디스 큐나 레빗엠큐가 대표적인 메시지 브로커 중 하나

2. 이벤트 브로커

2-1. 이벤트 브로커 특징

  • 이벤트 또는 메시지라고 불리는 레코드를 하나만 보관하고 인덱스를 통해 개별 액세스를 관리
  • 필요한 시간동안 이벤트를 보존 가능
  • 메시지 브로커는 이벤트 브로커로 역할을 할 수 없지만, 이벤트 브로커는 메시지 브로커 역할을 할 수 있음
  • 이벤트 브로커는 서비스에서 나오는 이벤트를 데이터베이스에 저장하듯이 이벤트 브로커의 큐에 저장
    • 카프카나 AWS 키네시스가 대표적인 이벤트 브로커 중 하나
    • 딱 한 번 일어난 이벤트 데이터를 브로커에 저장함으로서 단일 진실 공급원으로 사용 가능
    • 장애가 발생했을 때, 장애가 일어난 지점부터 재처리 가능
    • 많은 양의 실시간 스트림 데이터를 효과적으로 처리할 수 있음
    • 이 외에도 다양한 이벤트 기반 마이크로서비스 아키텍처에서 중요한 역할을 맡을 수 있음

이벤트 브로커로 클러스터를 구축하면 이벤트 기반 마이크로 서비스 아키텍처로 발전하는데 아주 중요한 역할을 할 뿐만 아니라 메시지 브로커로서도 사용할 수 있어 활용성이 좋음


참고 강의 : https://www.inflearn.com/course/아파치-카프카-입문/dashboard