의문점 공부하기/☁️ 클라우드

☁️ Saga 패턴이란?

아리빠 2023. 6. 8. 16:23

커리어리에서 MSA에 대한 내용을 읽다가 발견한 Saga패턴, 이건 무엇이며, 어디에 쓰는걸까?

 

saga 패턴은 분산 애플리케이션에서 일관성을 유지하고 여러 마이크로서비스 간의 트랜잭션을 조정하여 데이터 일관성을 유지하는 데 도움이 되는 장애 관리 패턴이라고 한다

 

DB는 하나인데 라이브중 장애가 발생한다면 ? 이라는 문제 때문/ 그래서 DB는 보통 미리 동기화 해놓거나, 백업을 해놓는것이 매우 중요하다


아래는 gpt의 대답


클라우드 사가(Saga) 패턴은 분산 시스템에서 여러 서비스 간의 트랜잭션 처리를 보장하기 위한 패턴.

클라우드 환경에서 여러 서비스가 분산되어 동작하고, 각 서비스가 독립적으로 데이터를 관리하는 경우에 사용

일반적으로 트랜잭션은 모놀리틱 아키텍처에서 단일 데이터베이스에서 처리되지만  분산된 서비스 아키텍처에서는 여러 서비스 간의 데이터 일관성과 상호작용을 보장하기 어렵다. 이 때 클라우드 사가 패턴을 사용하여 트랜잭션을 조정하고 데이터 일관성을 유지할 수 있다.

클라우드 사가 패턴은 크게 두 가지 유형으로 구현될 수 있다:

-Choreography-based Saga: 각 서비스는 자체적으로 트랜잭션을 시작하고 완료하며, 이벤트를 통해 다른 서비스와 상호작용. 각 서비스는 상태와 트랜잭션 이력을 유지하고, 이벤트를 통해 다른 서비스에게 상태 변경을 알린다.

-Orchestration-based Saga: 트랜잭션 조정을 위한 중앙 집중적인 오케스트레이터가 존재. 오케스트레이터는 트랜잭션의 흐름과 상태를 관리하고, 각 서비스에게 지시하여 트랜잭션 단계를 수행하도록 한다.

클라우드 사가 패턴은 트랜잭션 조정을 위해 상태를 유지하고 상호작용하는 방식으로 데이터 일관성을 유지한다.

각 서비스 간의 통신은 비동기적이며, 오류 처리 및 롤백 메커니즘도 고려되어야 한다.

이 패턴은 분산 시스템에서의 데이터 일관성과 결함 허용성을 개선하고, 서비스 간의 결합도를 낮춰 유연성과 확장성을 제공한다.

'의문점 공부하기 > ☁️ 클라우드' 카테고리의 다른 글

☁️ 12factor 란?  (0) 2023.06.12