Saga 패턴

jihunnit·2023년 11월 2일
0

TIL

목록 보기
13/16

마이크로서비스의 원칙 : 1 MicroService, 1 Database

여러 마이크로서비스가 한 DB를 이용할 경우, DB변경으로 인한 혼란을 야기할 수 있음

이러한 기본 원칙을 지키기 위해 1MS, 1DB로 구현할 경우
ACID를 지키기 어렵게 됨

분산 트랜잭션이 발생함에 따라, 여러 데이테베이스에 걸쳐 있는 마이크로서비스의 일관성 문제는
어떻게 해결해야 할까?

이러한 문제(분산 트랜잭션에서의 일관성 확보) 해결 위해 Saga 패턴 등장

Saga 패턴 : 마이크로서비스들끼리 이벤트를 주고 받아 특정 마이크로서비스에서의 작업이 실패하면 이전까지의 작업이 완료된 마이크서비스들에게 보상 (complemetary) 이벤트를 소싱함으로써 분산 환경에서 원자성(atomicity)을 보장
(즉 지금까지 각 마이크로서비스가 수행한 작업을 전부 rollback)

이를 통해, Saga패턴은 MSA에서 데이터의 일관성 관리에 도움을다!

사가패턴을 구현하는 방법 -> 앞서 배웠던 두 패턴을 응용해서 가능

profile
인간은 노력하는 한 방황한다

0개의 댓글