Free Lines Arrow
본문 바로가기
Architecture/MSA

[MSA] Transaction

by skahn1215 2023. 3. 4.
728x90
반응형

MSA Transaction

  • MSA는 각각 독립된 서비스이다.
  • 그렇다면 트랜잭션을 처리하는것은 쉽지 않을것 같다.
  • 어떻게 처리를 해야 될까?

 

MSA Transaction 처리 방법

  • 대표적인 두가지 방법이 있다. 여기서는 개념만 알아보고
    각각 구체적으로  살펴볼 예정이다.
    • SAGA
    • Two-Phase Commit

 

SAGA

  • 여러서비스에 나눠져 있는 비즈니스 트랜잭션을 하나의 사가로 구현한다.
    각 로컬 트랜잭션은 데이터베이스를 업데이트를 한다. 업데이트 이후 다음 로컬 트랜잭션을 트리거 하기 위해 메시지 또는 이벤트를
    발생시킨다.
  • 트랜잭션이 하나라도 실패하는 경우 그것을 취소하기 위한 트랜잭션을 실행 시킨다.

 

Two-Phase Commit

  • 여러 노드에서 원자적 트랜잭션 커밋을 달성하기 위한 알고리즘이다.
    모든 노드들이 실패없이 커밋되거나 커밋되지 않도록 보증하기 위함이다. 
  • 일반 적으로 분산 데이터 베이스 안에서 사용하는 알고리즘이다.
  • 아래 그림은 2PC 의 흐름이다.

 

 

 

참고:

https://microservices.io/

 

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

댓글