트랜잭션별 분해 - AWS 규범적 지침

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

트랜잭션별 분해

분산 시스템에서 애플리케이션은 일반적으로 하나의 비즈니스 트랜잭션을 완료하기 위해 여러 마이크로서비스를 호출해야 합니다. 지연 문제나 2단계 커밋 문제를 방지하려면 트랜잭션을 기반으로 마이크로서비스를 그룹화할 수 있습니다. 이 패턴은 사용자가 응답 시간을 중요하게 생각하고, 모듈을 패키징한 후 서로 다른 모듈이 모놀리스를 생성하지 않는 경우에 적합합니다. 다음 표는 이 패턴 사용의 장단점을 설명합니다.

장점 단점
  • 응답 시간이 더 빠릅니다.

  • 데이터 일관성에 대해 걱정할 필요가 없습니다.

  • 가용성 개선.

  • 여러 모듈을 함께 패키징할 수 있으며, 하나의 모놀리스를 생성할 수 있습니다.

  • 별도의 마이크로서비스가 아닌 단일 마이크로서비스에 여러 기능이 구현되므로 비용과 복잡성이 증가합니다.

  • 트랜잭션 지향 마이크로서비스는 비즈니스 도메인의 수와 이들 간의 종속성이 높을 경우 성장할 수 있습니다.

  • 동일한 비즈니스 도메인에 대해 일관되지 않은 버전이 동시에 배포될 수 있습니다.

다음 그림에서 보험 모놀리스는 트랜잭션을 기반으로 여러 마이크로서비스로 분류됩니다.

트랜잭션별 모놀리스 분해

보험 시스템에서는 일반적으로 청구 요청이 제출된 후 고객에게 태그가 지정됩니다. 즉, 고객 마이크로서비스 없이는 청구 서비스가 존재할 수 없습니다. 영업고객은 하나의 마이크로서비스 패키지로 패키징되며, 비즈니스 트랜잭션에는 두 마이크로서비스 패키지와의 조정이 필요합니다.