본문 바로가기

Infrastructure

Redis Pub/Sub과 Kafka 비교

목차

  • 들어가면서
  • Redis Pub/Sub
  • Kafka
  • Redis Pub/Sub vs Kafka
  • 마치면서

 

들어가면서

이번 글을 통해 Redis Pub/Sub과 Kafka를 비교해보겠다. Pub/Sub 패턴을 구현한 Message Queue로 여러 솔루션이 존재하지만, Kafka는 그 중 유명한 솔루션 중 하나이다. 하지만 Redis Pub/Sub은 Redis의 캐시 기능에 밀려 잘 모르는 분도 많다. 알고보면 Reids Pub/Sub도 적절한 상황에 활용한다면 좋은 솔루션이 될 수 있다.

 

이번글을 통해 Reids Pub/Sub과 Kafka의 차이를 알아보고 언제 사용하는게 좋을지 정리해보겠다.

 

Redis Pub/Sub

Redis Pub/Sub은 Redis에서 제공하는 기능으로 mesage broker로 사용할 수 있다. 큰 특징으로는 low-latency로 메시지를 구독자들에게 전달할 수 있다.

 

Kafka

kafka는 분산, 수평 확장 가능한 pub/sub 메시지 시스템이다. kafka의 특징으로는 high-throughput, high-availability 그리고 fault-tolerant 이다.

 

Redis Pub/Sub vs Kafka

여러 관점에서 Redis Pub/Sub과 Kafka를 비교해보자.

 

  Redis Pub/Sub Kafka
기본구조 in-memory 기반으로 메시지가 영속적으로 저장되지 않는다. high-throughput을 갖고, 메시지를 영속적으로 저장할 수 있다.
구독 방식 Push 기반이다.
발행자가 메시지를 발행한 순간, 해당 채널에 연결된 구독자들에게 메시지를 바로 전달한다. 즉, 발행시점에만 구독자가 메시지를 전달 받을 수 있다.
Pull 기반이다.
발행자가 메세지를 발행하면 메시지가 kafka 토픽에 쌓인다. 이후 구독자는 토픽에서 데이터를 가져간다. 즉, 발행시점 이후에 구독자가 메시지를 전달 받을 수 있다.
메시지 전달 속도 발행된 메시지는 바로 구독자에게 전달된다. 메시지 전달 속도는 kafka의 큰 관심사는 아니다.
병렬처리 싱글 스레드로 동작한다. 병렬처리를 지원한다.

 

마치면서

위의 차이점으로 Kafka는 많은 양의 데이터를 처리할때 그리고 데이터 누실에 민감한 상황에 사용하면 좋은 솔루션이다. 반면에 Redis Pub/Sub은 간단한 방법으로 실시간으로 메시지를 전달하고 싶은 상황에 적합하다.

'Infrastructure' 카테고리의 다른 글

K8S CPU Requests와 Limits 의미  (0) 2024.03.31