목차
- 들어가면서
- 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 |
---|