공부, 기록

EDA 본문

공부/소소한 개발

EDA

무는빼주세요 2022. 3. 5. 18:25

EDA (Event Driven Architecture) : 분산 서비스간 이벤트를 기반으로 데이터를 비동기 방식으로 생성, 소비 하는 방식

Event : 시스템의 내부나 외부에서 유발된 시스템 상태의 중요한 변화 또는 의미있는 사건

동기, 비동기 통신

  • 동기 통신: (RESTful API를 비롯한) API를 통한 요청-응답 방식(peer to peer)
  • 비동기 통신: Event Channel(Message Broker, Kafka)를 통한 pub/sub 방식

 

EDM = Event Driven Architecture를 적용한 MicroService

EDM의 특징과 장점

  • 비동기 통신 사용 - 각 MicroService간 느슨한 결합도(Loosely Coupled) 유지 가능
  • EDM에서 발생한 이벤트는 이벤트 스토어에 저장(이벤트 로그)
  • Transaction Management: Retry, Rollback
  • 다른 시스템의 정보를 알 필요가 없음
  • 좋은 확장성

주요 구성 요소

 

  • Event generator : 시스템 내,외부의 상태 변화를 감지하여 표준화된 형식의 이벤트를 생성
  • Event channel : 이벤트를 필요로 하는 시스템까지 발송
  • Event processing engine : 수신한 이벤트를 식별, 적절한 처리를 함. 때에 따라 이벤트 처리의 결과로 또 다른 이벤트를 발생시킬 수 있다

 

 

EDA의 예

Kafka 완전 정복 : 클러스터 구축부터 MSA 환경 활용까지 강의 내용 中

 

Kafka 완전 정복 : 클러스터 구축부터 MSA 환경 활용까지 강의 내용 中

 

 

 

 

 

 

참조

https://www.redhat.com/ko/topics/integration/what-is-event-driven-architecture
https://www.samsungsds.com/kr/insights/msa_architecture_edm.html
https://jaehun2841.github.io/2019/06/23/2019-06-23-event-driven-architecture/#event-driven-%EB%9E%80

'공부 > 소소한 개발' 카테고리의 다른 글

스프링 Context  (0) 2022.04.02
CQRS  (0) 2022.03.12
JAVA의 GC  (0) 2022.02.27
BIO / NIO  (0) 2022.01.22
Kafka - 2  (0) 2021.12.19