분산환경에서 트랜잭션 문제
Saga 패턴 - 실패
만약 작업이 실패하면 기존 작업을 롤백하기 위해 보상 작업을 수행한다.
Saga 패턴 – 오케스트레이터 패턴에 적용
오케스트레이션 서비스를 통해 분산 트랜잭션을 각기 실행한다. 각 서비스의 응답에 따라 다음 서비스를 호출할 지 보상 트랜잭션을 실행할 지 결정한다.
Saga 패턴 – 코레오그래피 패턴에 적용
코레오그래피 패턴에는 트랜잭션 관리를 위한 서비스가 없어서 각 서비스는 트랜잭션 시퀀스에서 다음 이벤트를 트리거 하거나 시퀀스에서 이전 서비스에 관한 보상 이벤트를 트리거 해야 한다.
Saga 패턴 – 구현
- Saga 패턴은 다음에서 구현될 수 있다.
- 실행 오케스트레이터 패턴
- 코레오그래피 패턴
- 다음 중 하나의 구현으로 트랜잭션을 관리할 수 있다.
- 여러 서비스 간
- 중앙 데이터베이스 없이
참고
반응형