본문 바로가기

DataBase

[Redis]Redis Pub/Sub과 Redis Stream의 차이점

반응형

Redis Stream과 Pub/Sub 차이점

Redis Pub/Sub 기능 설명

  • 메시지 큐를 이용하여 해당 Topic(채널)을 구독하는 구독자(SubScription)에게 메시지를 발행(Publish)

Redis Pub/Sub 구조

참고사이트

Redis Pub/Sub 특징

  • Publisher는 각 Topic(채널)에 대한 Subscriber 정보를 알 수 없음
    • IF - Topic A을 구독하는 구독자가 없어도 메시지는 발행되며, 추후 구독자가 발생해도 이전 발행된 메시지는 확인 불가
    • Publisher는 메시지를 따로 저장하지 않으며, 구독자(Subscriber)의 네트워크 장애 발생때 발행된 메시지는 확인불가
    •  

Redis Stream 기능 설명

  • Log 파일처럼 적재되는 Append Only(수정불가)의 구조
  • 발행항 메시지를 Stream에 적재

Redis Stream 구조

발행된 데이터를 Stream에 적재하여 해당 Stream Id를 구독하는 소비그룹(Consumer Group)이 해당 Stream에 담긴 메시지를 소모(consumed)함

Redis Stream 기능 특징

  • Redis 메시지큐에 전달하여 구독자(SubScriber)에게 전달되는 구조가 아닌, 로그 형식으로 Stream에 적재되는 특성
  • MSA구조로 개발하기 용이함
    • 주문기능, 결제기능을 분리하여 결제기능 장애발생 시에도 주문기능을 사용 할 수 있음 → 결제기능이 복구되었을 때 적재 된 주문리스트를 처리 할 수 있음

Redis Stream과 Redis Pub/Sub  기능 차이점

  • Redis Stream에서는 Stream에 쌓여있는 데이터를 이후에 발생한 소비그룹(Consumer Group)에서 소모할수 있으므로, Pub/Sub의 메시지 휘발성 문제점을 커버할수 있음
  • Redis Stream에서 해당 Stream에 대한 다중 소비그룹이 있다면 분산 처리가 가능하나,
    Redis Pub/Sub에서는 해당 Topic(채널)을 구독하는 모든 구독자에게 메시지가 발행되므로 분산 처리가 어려움

반응형

'DataBase' 카테고리의 다른 글

[Database]데이터베이스란?  (1) 2024.08.31
[Spring] MyBatis Mapper Bean NotFound  (0) 2023.06.01