Grow with AppMaster Grow with AppMaster.
Become our partner arrow ico

마이크로서비스 사가

마이크로서비스 아키텍처의 맥락에서 "Microservices Saga"라는 용어는 시스템 내에서 느슨하게 결합된 여러 서비스 간에 데이터 일관성을 유지할 수 있는 분산 트랜잭션 패턴을 나타냅니다. Saga 패턴의 주요 목표는 개별 마이크로서비스가 자체 데이터를 담당하고 자체 데이터베이스를 보유하는 마이크로서비스 기반 시스템에서 트랜잭션을 관리할 때 발생하는 문제를 해결하는 것입니다. "사가"라는 용어는 데이터베이스 관리 시스템 영역에서 유래되었으며, 1987년 Hector Garcia-Molina와 Kenneth Salem이 장기 트랜잭션 내에서 실행되는 일련의 작업을 지칭하기 위해 처음 도입했습니다.

마이크로서비스 아키텍처는 소프트웨어 개발의 유연성, 확장성 및 탄력성을 높이는 기능 덕분에 인기가 높아졌습니다. 그러나 모든 소프트웨어 아키텍처 접근 방식과 마찬가지로 장단점이 있습니다. 마이크로서비스 아키텍처의 주목할만한 과제 중 하나는 특히 단일 비즈니스 운영이 여러 마이크로서비스에 걸쳐 있는 경우 서비스 전반에서 데이터 일관성을 유지하는 것입니다. 이 문제는 일반적으로 각 마이크로서비스가 해당 데이터 저장소를 소유하여 각 서비스에 대해 별도의 트랜잭션 경계가 발생한다는 사실로 인해 더욱 심화됩니다.

이 문제를 해결하기 위해 Microservices Saga 패턴은 일련의 로컬 트랜잭션을 단일 마이크로서비스가 소유한 각 트랜잭션과 결합하는 솔루션을 제안합니다. 이러한 트랜잭션은 메시지나 이벤트를 통해 비동기 방식으로 조정되어 2단계 커밋 프로토콜에 의존하는 기존 분산 트랜잭션을 대체합니다. Saga 패턴에서 각 로컬 트랜잭션 뒤에는 순서대로 다음 로컬 트랜잭션을 트리거하거나 실패 시 보상 트랜잭션을 트리거하는 이벤트가 뒤따릅니다. 보상 트랜잭션은 문제가 발생할 때 서비스 전체에서 데이터 일관성을 유지하기 위해 이전 로컬 트랜잭션에서 변경한 내용을 되돌리는 것을 목표로 하는 "실행 취소" 작업입니다.

마이크로서비스 사가는 안무(choreography)와 오케스트레이션(orchestration)이라는 두 가지 주요 패턴을 사용하여 구현할 수 있습니다. 안무에서 각 마이크로서비스는 어떤 이벤트에 반응해야 하는지, 어떤 작업을 수행해야 하는지 이해하는 역할을 담당합니다. 로컬 트랜잭션이 완료되면 마이크로서비스는 이벤트를 내보내고 다른 마이크로서비스는 이 이벤트를 수신하고 그에 따라 작동합니다. 이 접근 방식의 가장 큰 장점은 분산형 제어를 촉진하고 중앙 조정이 거의 또는 전혀 필요하지 않다는 것입니다.

오케스트레이션 패턴에서 오케스트레이터라는 중앙 구성 요소는 마이크로서비스 분야에서 로컬 트랜잭션 실행을 조정하는 역할을 담당합니다. 오케스트레이터는 개별 서비스로부터 이벤트를 수신하고 로컬 트랜잭션을 실행하기 위해 서비스에 명령을 보냅니다. 이러한 중앙 집중식 접근 방식을 통해 효율적인 예외 처리가 가능하고 전체 사가 프로세스에 대한 가시성이 향상됩니다. 그러나 잠재적인 병목 현상이 발생할 수 있으며 추가적인 인프라 및 유지 관리 노력이 필요할 수 있습니다.

강력한 no-code 플랫폼인 AppMaster 에서는 완전한 대화형 요소로 백엔드, 모바일 및 웹 애플리케이션을 생성할 수 있는 시각적 비즈니스 프로세스(BP) 디자이너를 통해 Microservices Saga 패턴을 구현하는 것이 더 쉬워졌습니다. 플랫폼은 각 프로젝트에 대해 소스 코드, 테스트, 마이그레이션 스크립트 등을 생성하며, 이는 마이크로서비스 아키텍처에 완벽하게 들어맞아 데이터 일관성과 분산 트랜잭션의 효율적인 실행을 보장합니다. 또한 AppMaster 의 접근 방식은 수정할 때마다 애플리케이션을 재생성하여 기술적 부채를 제거하므로 단일 시민 개발자라도 포괄적인 소프트웨어 솔루션을 효율적이고 효과적으로 만들 수 있습니다.

예를 들어, 재고, 결제, 배송에 대한 별도의 서비스를 제공하는 전자상거래 플랫폼을 생각해 보세요. 주문이 접수되면 재고 서비스에서 재고를 예약하고, 결제 서비스를 통해 고객에게 요금을 청구하고, 배송 서비스를 통해 배송을 생성하는 마이크로서비스 사가(Microservices Saga)가 시작됩니다. 이러한 단계 중 하나라도 실패하면 이전에 성공한 작업을 취소하기 위해 보상 트랜잭션이 실행되어 시스템 전체의 데이터 일관성이 보장됩니다. Microservices Saga 패턴을 구현함으로써 이 전자 상거래 플랫폼은 마이크로서비스 아키텍처 내에서 안정적인 트랜잭션 관리를 제공하여 궁극적으로 탄력성과 간소화된 운영을 촉진할 수 있습니다.

결론적으로, Microservices Saga는 마이크로서비스 기반 시스템에서 데이터 일관성을 유지하는 문제를 해결하는 분산 트랜잭션 패턴입니다. 비동기 메시징 또는 이벤트를 통해 여러 서비스에 걸쳐 일련의 로컬 트랜잭션을 조정하고 기존 분산 트랜잭션을 대체하며 보다 유연하고 확장 가능하며 탄력적인 소프트웨어 아키텍처를 보장합니다. AppMasterno-code 플랫폼으로 Microservices Saga 패턴을 구현하면 기술 부채 부담 없이 더 빠르고 비용 효율적인 애플리케이션 개발이 가능해지며 개발자는 최신 소프트웨어 아키텍처 관행을 준수하는 포괄적인 소프트웨어 솔루션을 만들 수 있습니다.

관련 게시물

클라우드 기반 재고 관리 시스템 대 온프레미스: 어느 것이 당신의 사업에 적합할까요?
클라우드 기반 재고 관리 시스템 대 온프레미스: 어느 것이 당신의 사업에 적합할까요?
클라우드 기반 및 온프레미스 재고 관리 시스템의 장단점을 살펴보고 회사의 고유한 요구 사항에 가장 적합한 시스템을 결정하세요.
전자 건강 기록(EHR) 시스템에서 찾아야 할 5가지 필수 기능
전자 건강 기록(EHR) 시스템에서 찾아야 할 5가지 필수 기능
환자 치료를 개선하고 운영을 간소화하기 위해 모든 의료 전문가가 전자 건강 기록(EHR) 시스템에서 찾아야 하는 가장 중요한 5가지 기능을 알아보세요.
원격진료 플랫폼이 진료소 수익을 어떻게 높일 수 있는가
원격진료 플랫폼이 진료소 수익을 어떻게 높일 수 있는가
원격 의료 플랫폼이 환자 접근성을 높이고, 운영 비용을 절감하고, 치료를 개선하여 진료소 수익을 높이는 데 어떻게 도움이 되는지 알아보세요.
무료로 시작하세요
직접 시도해 보고 싶으신가요?

AppMaster의 성능을 이해하는 가장 좋은 방법은 직접 확인하는 것입니다. 무료 구독으로 몇 분 만에 나만의 애플리케이션 만들기

아이디어를 실현하세요