이론/백엔드 개념정리
Redis, RabbitMQ, Kafka의 차이점
블스뜸
2025. 4. 30. 17:22
이 셋의 역할을 크게 나누어 보자면 메시지브로커와 이벤트 브로커로 나눌 수 있다.
메시지 브로커는 이벤트 브로커로서의 역할을 할 수 없지만
이벤트 브로커는 메시지 브로커로서의 역할을 할 수 있다
메시지 브로커(Redis, RabbitMQ)
1. 많은 기업들의 대규모 메시지 기반 미들웨어 아키텍처에서 사용되었다
2. 서비스하는 어플리케이션들을 보다 효율적으로 아키텍처들을 연결하는 요소로 작동하는 소프트웨어
3. 주로 메시징, 인증, 데이터베이스같은 것들이 미들웨어
4. 메시지 브로커에 있는 큐에 데이터를 보내고 받는 프로듀서와 컨슈머를 통해 메시지를 통신 네트워크를 맺는 용도
5. 메시지를 받아서 적절히 처리하면 짧은 시간내에 삭제되는 구조
이벤트 브로커(Kafka)
1. 이벤트 또는 메시지라고 불리는 기록들을 딱 하나의 장부로 저장하고 개별 엑세스를 관리한다
2. 업무상 필요한 시간동안 이벤트를 보존할 수 있다
3. 이벤트를 마치 데이터베이스같이 큐에 이벤트를 저장한다
4. 딱 한번 일어난 이벤트를 저장함으로써 단일 진실 공급원으로 사용할 수 있다
5. 장애가 발생했을 때 장애가 일어난 지점부터 재처리가 가능하다
6. 많은 양의 실시간 스트림 데이터를 효과적으로 처리할 수 있다
이벤트 브로커로 클러스터를 구축하면 이벤트 기반 마이크로 서비스 아키텍처로 발전하는데 아주 중요한 역할이면서도 메시지 브로커의 역할도 수행할 수 있다
요약
메시지 브로커 - 메시지를 보내고 처리하고 삭제한다
이벤트 브로커 - 이벤트를 보내고 처리하고 저장한다