이벤트 드리븐 아키텍처란?
시스템에서 발생하는 이벤트(상태 변화나 행동)를 기반으로 동작하는 소프트웨어 설계 스타일이다.
이벤트는 비동기적으로 처리되며, 서비스 간의 느슨한 결합을 통해 독립적으로 동작할 수 있게 한다.
- 이벤트: 시스템 내에서 발생하는 상태 변화 또는 행동을 나타내는 메시지이다.
- 이벤트 소스: 이벤트를 생성하여 이벤트 버스에 전달하는 역할을 한다.
- 이벤트 핸들러: 이벤트를 수신하여 처리하는 역할을 한다.
- 이벤트 버스 : 이벤트 소스와 이벤트 핸들러 간의 메시지 전달을 중개한다.
ex) 온라인 쇼핑몰
1. 이벤트 소스: producer가 온라인 쇼핑몰에서 주문을 한다. 그럼 주문 서비스가 '주문 생성' 이벤트를 발생시킨다.
2. 이벤트 버스(큐): Kafka나 RabbitMQ와 같은 메시지 브로커가 '주문 생성' 이벤트를 전달한다.
3. 이벤트 핸들러: consummer가 이벤트 처리를 담당한다.
ex)
배송지 입력 서비스: '주문 생성' 이벤트를 수신하여 배송지를 입력한다.
배송 서비스: '주문 생성' 이벤트를 수신하여 배송 준비를 시작한다.
결제 서비스: '주문 생성' 이벤트를 수신하여 결제 처리를 한다.

Spring Cloud Stream 란?
이벤트 드리븐 마이크로서비스를 구축하기 위한 프레임워크이다.
Kafka, RabbitMQ 등의 메시지 브로커와 통합하여 이벤트 스트리밍을 처리한다.
프로듀서와 컨슈머 간의 통신을 추상화하여 간편하게 이벤트 기반 애플리케이션을 개발할 수 있다.
주요 특징
- 바인더 추상화: 메시지 브로커와의 통합을 위한 추상화 레이어를 제공한다.
- 프로듀서/컨슈머 모델: 이벤트를 생성하고 처리하는 모델들을 지원한다.
- 유연한 설정: 다양한 설정 옵션을 통해 손쉽게 커스터마이징이 가능하다.
'Backend > MSA' 카테고리의 다른 글
| 241220 시큐어 코딩 개념과 실습 TIL (1) | 2024.12.20 |
|---|---|
| 241219 모니터링 시스템 개념과 실습 TIL (0) | 2024.12.19 |
| 241126 분산 추적 (Spring Cloud Sleuth) 및 로깅 (Zipkin) 실습 TIL (0) | 2024.11.26 |
| 241125 컨피그 서버 (Spring Cloud Config) 실습 TIL (2) | 2024.11.26 |
| 241125 보안 구성 (OAuth2 + JWT) 실습 TIL (1) | 2024.11.25 |