Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- JPA
- 테이블 매핑
- onetoone
- Event Messaging
- ManyToOne
- Event Drvien Architecture
- event streaming
- N:M
- OneToMany
- querydsl
- spring boot
- 다대다
Archives
- Today
- Total
차곡차곡 쌓아가는 개발일기
Event Driven Architecture란? 본문
Event Drvien Architecture(이벤트 기반 아키텍쳐) 줄여서 EDA는 쉽게 설명해서 특정 서비스에서 다른 서비스가 관심을 가질 수 있는 작업을 수행할 때, 상태의 변경을 나타내는 이벤트
를 발행하면, 다른 서비스들이 이벤트
를 수신하여 작업을 수행하는 설계 패턴이다.
EDA의 구성 요소
EDA에서 애플리케이션은 이벤트
를 Publish(발행)하거나 Comsume(소비)하는 역할을 한다. 한 어플리케이션이 두 역할을 동시에 수행하는 것도 가능하다.
Publisher
- 메시지 형식으로
이벤트
를 브로커나, 다른 형식의이벤트
라우터로 전송한다. 발행된 이벤트들은 다른 이벤트와 함께 시간순으로 순서가 유지된다.
Consumer
- 실시간 또는 원하는 시간에 발행된 메시지를 수집하여 작업을 수행한다.
이벤트 전송 방식
이벤트 메시징 또는 Pub/Sub
- Publisher가 이벤트를 게시하면 소비하려는 모든 Subscriber에게 직접 전송된다. 메시지 브로커가 주로 사용되며 메시지를 수신하여 필요한 경우에는 변역을 수행, 다른 이벤트들과 함께 시간순으로 순서를 유지한다. Comsumer가 Consume한 메시지는 재사용되지 않도록 삭제한다.
이벤트 스트리밍
- 이벤트 Publisher는
이벤트 스트림
이라는 것을 브로커에 게시하는데, Consumer는 이것을 Subscribe하여 발행되는 모든 이벤트를 수신하는 것 대신에 소비하려는 이벤트만 소비할 수 있다. 메시지를 스트리밍하는 플랫폼은 몇가지 특징을 가지고 있다.이벤트 지속성
: 소비자는 이벤트가 게시된 후 언제든지 데이터를 Consume할 수 있다복잡한 이벤트 처리
:이벤트 스트리밍
은 Consumer가 처리하는 모든 일련의 이벤트와, 결과를 기반으로 수행하는 복잡한 작업들에도 사용이 가능하다.
EDA를 사용하여 얻을 수 있는 이득이 무엇인가?
이벤트 스트리밍
은 변화하는 비즈니스 상황에 실시간으로 대응할 수 있어야 하므로, 실시간 데이터와, 기록된 데이터를 기반으로 예측과 결정을 내리는 애플리케이션을 사용할 수 있다.- 이벤트 기반 애플리케이션들은 서로의 가용성에 의존하지 않고, 서비스 중단 없이 업데이트 가능하여 내결함성이 높고, 만약 하나의 구성 요소가 다운되더라도 백업이 가능하다. 또한 이벤트 지속성을 통해 과거의 이벤트를 재생함으로써, Consumer가 중단되더라도 데이터를 복구할 때 도움이 된다.
- 이벤트 기반 아키텍쳐는 Publisher가 발행한 메시지를 Consumer가 수신하기 전까지 대기하지 않고 다음 메시지를 발행하거나 작업을 수행하는 비동기적 통신을 지원한다.
참고글
* IBM의 Event Drvien Architecture : https://www.ibm.com/topics/event-driven-architecture#Event-driven+architecture+messaging+models