728x90
반응형
MSA Transaction
- MSA는 각각 독립된 서비스이다.
- 그렇다면 트랜잭션을 처리하는것은 쉽지 않을것 같다.
- 어떻게 처리를 해야 될까?
MSA Transaction 처리 방법
- 대표적인 두가지 방법이 있다. 여기서는 개념만 알아보고
각각 구체적으로 살펴볼 예정이다.- SAGA
- Two-Phase Commit
SAGA
- 여러서비스에 나눠져 있는 비즈니스 트랜잭션을 하나의 사가로 구현한다.
각 로컬 트랜잭션은 데이터베이스를 업데이트를 한다. 업데이트 이후 다음 로컬 트랜잭션을 트리거 하기 위해 메시지 또는 이벤트를
발생시킨다. - 트랜잭션이 하나라도 실패하는 경우 그것을 취소하기 위한 트랜잭션을 실행 시킨다.
Two-Phase Commit
- 여러 노드에서 원자적 트랜잭션 커밋을 달성하기 위한 알고리즘이다.
모든 노드들이 실패없이 커밋되거나 커밋되지 않도록 보증하기 위함이다. - 일반 적으로 분산 데이터 베이스 안에서 사용하는 알고리즘이다.
- 아래 그림은 2PC 의 흐름이다.
참고:
What are microservices?
Microservices - also known as the microservice architecture - is an architectural style that structures an application as a collection of loosely coupled services, which implement business capabilities. The microservice architecture enables the continuous
microservices.io
728x90
반응형
'Architecture > MSA' 카테고리의 다른 글
[MSA] Service Mesh (0) | 2021.09.30 |
---|---|
[MSA] 개념 (0) | 2021.09.29 |
댓글