Server

[Redis] Pub/Sub

Raconer 2024. 3. 1. 23:22
728x90

Pub/Sub이란?

  • 메시징 모델 중의 하나로 발행(Publish)와 구독(Subscribe) 역할로 개념화 한 형태
  • 발행자와 구독자는 서로에 대한 정보 없이 특정 주체(토픽 or 채널)을 매개로 송수

Pub/Sub

Messaging Middleware 사용의 장점

  • 비동기 : 통신의 비동기 처리
  • 낮은 결합도 :  송신자와 수신자가 직접 서로 의존하지 않고 공통 미들웨어에 의존
  • 탄력성 :  수정원들간에 느슨한 연결로 인해 일부 장애가 생겨도 영향이 최소화됨
Messaging Middleware 제품들 : Kafka, RabbitMQ, ActiveMQ

Redis의 Pub/Sub 특징

  • Message Queue에 저장 되지 않음
    • 온라인으로 떠있는 Subscriber에게만 메시지가 전송된다.
  • Kafka의 컨슈머 그룹 같은 분산 처리 개념이 없음.
    •  컨슈머 그룹 같은 분산 처리  : 특정 서버에서 메시지 처리가 되면 나머지 서버에서는 특정 메시지에 대한 처리가 필요 없다.
  • Message 발행시 Push 방식으로 Subscriber들에게 전송
    • Kafka : 메시지 발행시 Subscriber가 와서 받아가는 Polling 기법을 사용한다.
  • Subscriber가 늘어 날수록 성능이 저하

Redis Pub/Sub

Redis의 Pub/Sub의 유스케이스

  • 실시간으로 빠르게 전송되어야 하는 메시지
  • 메시지 유실을 감내할 수 있는 케이스
  • 최대 1회 전송(at-most-once) 패턴이 적합한 경우
  • Subscriber들이 다양한 채널을 유동적으로 바꾸면서 한시적으로 구독하는 경우

 

728x90