[Infra] MSA 아키텍처 설계 (분산 트랜잭션)
초기 만들어진 인프라 구조이다. 여기서 발전된 상황을 정리해보고자 한다.
MSA 환경에서 많은 Docker를 관리해야 하는 상황에서 모니터링이 굉장히 중요하다고 생각되어 모니터링 도구를 추가하였습니다.
Prometheus를 통해 시계열 데이터를 수집하고, Grafana를 통해 시각화를 하여 우리 Docker들의 상태를 편하게 확인할 수 있다.
기존 아키텍처에서 만약 증권 계좌에서 입출금 계좌로 송금할 때 주식 투자 서비스에서 요청을 받아서 입출금 계좌 서비스로 HTTP 요청을 보내고, 만약 에러가 발생 할 때 그 요청을 오케스트레이터로 보내야 했다. 하지만 이 구조는 불필요하게 서버를 경유해야 하고, 복잡한 구조 라고 생각했다.
그렇기에 만약 두개 이상의 DB를 경유해야 하는 상황의 요청을 오케스트레이터로 보내도록 아키텍처를 수정하였다. 이렇게 하면 오케스트레이터가 분산 트랜잭션을 관리해야하는 요청을 모두 수행하므로 각각의 서비스는 독립적으로 운영될 수 있고, 역할이 명확하게 분리되어 구조도 안정화 되었다.
이제 아키텍처가 확정이 되었고, 각각의 서비스를 완성 후에 오케스트레이터 서버를 구축하면서 SAGA 패턴을 적용하려고 한다!