본문 바로가기

디자인패턴

Event Driven MicroService

728x90

출처: https://medium.com/dtevangelist/event-driven-microservice-란-54b4eaf7cc4a

 

MicroService는 하나의 시스템을 기능에 따라 각각을 하나의 서버로 구성하는 Architecture pattern이다. 하지만 이런 MicroService에서는 각 서버에 DB가 각각 있는 것을 보통 지향한다.

 

이때, 문제가 되는 것은 각 DB들을 언제 동기화 할 것인가? 이다. 이때 이것을 해결해줄 수 있는 방법 중 하나가 Event Driven을 도입하는 것이다.

 

여기서 이벤트는 데이터의 CUD (Create, Update, Delete)라고 할 수 있다.

 

sequence는 아래와 같다.

  1. CUD가 발생
  2. 이벤트 로그를 저장소에 따로 보관
    1. 장애 발생시 이를 기반으로 복원 가능
    2. 데이터의 현재 상태가 됨
  3. 메세지 큐를 활용해서 이벤트를 등록하고 구독한 서비스들에게 메세지 전부 전달
  4. 각 DB CUD 수행

메세지 큐

 

 

여러 기업들이 EVENT 기반으로 microservice를 확장하려 한다.

배민 박용권님

 

728x90

'디자인패턴' 카테고리의 다른 글

Edge computing 이란?  (0) 2024.06.24
MVC 패턴 (Model-View-Controller pattern)  (0) 2024.06.20
높은 응집도, 낮은 결합도 예제 코드  (0) 2024.06.15
SOLID 원칙  (0) 2024.06.14
GRASP PATTERN  (0) 2024.06.13