반응형
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 |