Kafka와 Redis 특징 및 비교

델리만쥬 디퓨저·2024년 8월 15일

개요

Pub/Sub 구조란?

  1. 이벤트(메시지)를 발행하는 Publisher가 존재하며, Publisher는 특정 Channel(혹은 Topic)에 이벤트를 전송한다.
  2. 특정 Channel(혹은 Topic)을 구독하는 Subscriber가 존재하며, Publisher에 관계없이 발행된 이벤트를 받을 수 있다.
  • 구체적인 발행/구독 방식은 각 서비스마다 다른데, 오늘은 대표적인 Pub/Sub 서비스인 Kafka와 Redis에 대해서 알아보도록 하겠다.

특징

Kafka

  • 대규모 데이터 스트리밍 및 이벤트 기반 시스템에서 주로 사용되는 분산 스트리밍 플랫폼
  • 대용량 데이터를 실시간으로 처리하고 저장
  • 내구성 및 확장성이 뛰어남

Redis

  • 초고속 인메모리 데이터 스토어
  • 캐싱, 세션 관리, 빠른 데이터 조회 및 간단한 메시징에 사용
  • RAM에서 데이터를 처리하기 때문에 매우 짧은 지연 시간을 제공

작동 방식

Kafka

  • 생산자와 소비자가 데이터를 주고받으며, 메시지를 주제(Topic)과 파티션으로 분류하여 여러 브로커에 저장
  • 소비자는 자신이 원하는 주제를 구독하여 데이터를 가져옴

Redis

  • 생산자가 특정 키로 메시지를 전송하면, Redis는 연결된 모든 구독자에게 메시지를 즉시 푸시
  • 모든 데이터는 메모리에 저장되므로, 데이터 접근이 매우 빠름

메시지 처리 및 전송

Kafka

  • 소비자가 메시지 대기열에서 데이터를 가져오는 풀 기반 시스템
  • 메시지를 보존하며, 메시지의 크기와 전송 방법을 유연하게 관리
  • 메시지 전송 실패 시 오류 처리 및 재시도 지원

Redis

  • 메시지를 자동으로 구독자에게 푸시하는 푸시 기반 시스템
  • 메시지를 일회성으로 전송
  • 저장하지 않고 즉시 삭제하기 때문에 추후 재요청 불가능

성능 및 내결함성

Kafka

  • 높은 처리량과 병렬 처리 기능 지원하여 여러 소비자가 동일한 메시지를 동시에 처리 가능
  • 데이터 복제를 통해 내결함성 강화

Redis

  • 짧은 지연 시간으로 실시간 데이터 처리에 적합
  • 데이터가 메모리에 저장되므로 기본적으로 백업이 지원되지 않으며, 개발자가 직접 설정해야 함

사용 사례

Kafka

  • 실시간 데이터 스트리밍 및 분석
  • 로그 수집 및 처리
  • 이벤트 소싱 아키텍쳐
  • 데이터 파이프라인 구축

Redis

  • 캐싱 계층
  • 세션 관리
  • 실시간 순위표 및 카운터
  • 분산 잠금 시스템
profile
< 너만의 듀얼을 해!!! )

0개의 댓글