Engineering Note

[분산 트랜잭션] 분산트랜잭션 처리 패턴 본문

Server/분산트랜잭션

[분산 트랜잭션] 분산트랜잭션 처리 패턴

Software Engineer Kim 2026. 2. 16. 00:43

분산 트랜잭션 처리 패턴

- 여러 개읜 분산된 서비스를 하나의 일관된 트랜잭션으로 묶는 것

 

 

분산 트랜잭션 처리를 위한 전통적인 방법

- 2단계 커밋

- 원자성을 유지하기 위해 분산 데이터베이스 트랜잭션에 포함돼 있는 모든 노드가 커밋(commit)되거나 롤백(rollback)하는 메커니즘

- 단점 : 각 서비스에 잠금(lock in)이 걸려 발생하는 성능 문제 탓에 효율적인 방법이 아니다.

 

 

사가 패턴

- 일관성 유지가 필요한 트랜잭션을 모두 묶어 하나의 트랜잭션으로 처리하는 것이 아니라, 각 로컬 트랜잭션으로 분리해 순차적으로 처리하는 방법.

- 롤백이 필요한 경우 보상 트랜잭션으로 데이터의 일관성을 유지한다.

 

 

보상 트랜잭션

- 어떤 서비스에서 트랜잭션 처리에 실패할 경우 그 서비스의 앞선 다른 서비스에서 처리된 트랜잭션을 되돌리게 하는 트랜잭션

 

 

cf) 원자성(Acidity) : 트랜잭션의 작업이 모든 작업을 완전히 수행하거나 완전히 수행하지 않은 상태로 유지되어야 함을 의미

 

 

 

참고 자료 : 도메인 주도 설계로 시작하는 마이크로 서비스 개발(p68)

Comments