본문 바로가기

개발

비동기 메시징 시스템 패턴 - 이벤트 드리븐 아키텍처(EDA:Event-Driven Architecture)

반응형

각 비지니스 로직별 시스템 들이 특정 이벤트를 구독하여 작업을 처리하는 방식.

특정 이벤트가 발생하면 이를 다른 서비스 또는 모듈이 구독하여, 처리하는 비동기 처리방식

 

반응형

이벤트 드리븐 아키텍처 - Event Driven Architure

 

구성요소

 - 이벤트 

  시스템 내에서 발생하는 상태변화 및 행동 

  예) 주문완료, 배송완료, 반품접수 등 

 - 이벤트 프로듀서 - Event Producer

  이벤트를 생성 및 발행한다. 
   예) 주문완료시 "주문완료" 라는 이벤트를 발행 하여 이벤트 브로커에게 전달한다. 

 - 이벤트 브로커 - Event Broker

  이벤트를 구독하는 컨슈머에게 전달한다. 

   예) Kafka, Rabbit MQ 등의 메시지이 시스템 

 - 이벤트 컨슈머 - Event Consumer 

  이벤트를 구독하고 처리한다. 

  예) "주문완료" 이벤트를 구독하여 상품 출고를 처리한다. 

 

Event Broker의 대표적인 Kafka

 

Event Broker의 대표적인 Rabbit Mq

장점

 비동기적으로 실시간으로 이벤트를 처리할 수있다. 

 프로세스간, 시스템간 느슨한 결합으로 여러 시스템들은 독립적으로 관리 및 동작하여, 유지보수, 장애 대응에 유연하다.

 

단점

 느슨한 결합으로 시스템 설계와 디버깅이 어렵다. 

 메시지중복 또는 유실될 우려가 있어 이를 고려해야한다. 예) 먹등성 

 프로커를 통한 이벤트 전달로 지연현상이 발생 할 수 있다. 

 

반응형