개념이 헷갈려 간단하게 정리해보겠다..
두 개념 모두 분산 환경에서 메시지 교환 방식을 효과적으로 관리하는데 사용되는 패턴이다.
시스템이 특정 이벤트에 반응하여 동작하는 방식이다.
이벤트는 시스템의 상태가 변경되었음을 나타내고,
해당 이벤트는 다른 구성 요소가 구독하거나 반응할 수 있다.
이벤트의 생성, 감지, 소비를 중심으로 하는 아키텍처인 것이다..
따라서 비동기성, 느슨한 결합 등의 특징이 있다.
Event-Driven Architecture 에 속하는 특정 유형이라 볼 수 있다.
Publisher 는 이벤트 또는 메시지를 생성하고..
Subscriber 는 해당 메시지를 수신한다.
Publisher 와 Subscriber 사이에 직접적인 연결이 없으며(느슨한 결합)
메시지 브로커와 같은 중간 매개체가 중계하게 된다. (비동기성)
Pub/Sub Model 에는 Push Model, Pull Model 이 있는데
Push 모델은 중간 매개체가 직접 Subscriber 에게 메시지를 밀어 넣어 주는 모델이고,
Pull 모델은 Subscriber 가 중간 매개체에 있는 메시지를 가져가는 모델이다.
Push 모델로 대표적인 것은 Redis 의 Pub/Sub 이 있고,
Pull 모델로 대표적인 것은 Redis 의 Streams, Kafka 등이 있다.
Event-Driven 아키텍처 와 Pub/Sub 모델
개념이 헷갈려 간단하게 정리해보겠다..
두 개념 모두 분산 환경에서 메시지 교환 방식을 효과적으로 관리하는데 사용되는 패턴이다.
Event-Driven Architecture (EDA)
시스템이 특정 이벤트에 반응하여 동작하는 방식이다.
이벤트는 시스템의 상태가 변경되었음을 나타내고,
해당 이벤트는 다른 구성 요소가 구독하거나 반응할 수 있다.
이벤트의 생성, 감지, 소비를 중심으로 하는 아키텍처인 것이다..
따라서 비동기성, 느슨한 결합 등의 특징이 있다.
Pub/Sub Model
Event-Driven Architecture 에 속하는 특정 유형이라 볼 수 있다.
Publisher 는 이벤트 또는 메시지를 생성하고..
Subscriber 는 해당 메시지를 수신한다.
Publisher 와 Subscriber 사이에 직접적인 연결이 없으며(느슨한 결합)
메시지 브로커와 같은 중간 매개체가 중계하게 된다. (비동기성)
Pub/Sub Model 에는 Push Model, Pull Model 이 있는데
Push 모델은 중간 매개체가 직접 Subscriber 에게 메시지를 밀어 넣어 주는 모델이고,
Pull 모델은 Subscriber 가 중간 매개체에 있는 메시지를 가져가는 모델이다.
Push 모델로 대표적인 것은 Redis 의 Pub/Sub 이 있고,
Pull 모델로 대표적인 것은 Redis 의 Streams, Kafka 등이 있다.
'대규모 시스템 설계' 카테고리의 다른 글