MicrosoftMicrosoft Azure Solutions Architect Expert AZ-305 Certification·KO·업데이트됨 11 Aug 2026
소매 플랫폼은 다단계 주문 워크플로우를 처리합니다. 각 주문은 여러 구독자에게 OrderId별로 순서대로 처리되어야 하는 관련 메시지(주문 생성됨, 결제 승인됨, 항목 예약됨)의 대화를 생성합니다. 작업자가 '주문 생성됨' 메시지를 처리할 때, 다운스트림 서비스에 두 개의 명령을 원자적으로 보내거나, 처리 실패 시 롤백해야 합니다. 손상된 메시지는 손실 없이 격리되어야 합니다. 어떤 메시징 설계를 권장하시겠습니까?
정답 선택
옵션을 탭하여 정답을 확인하세요.
정답: 세션이 활성화된(sessionId=OrderId) Azure Service Bus 토픽; 각 다운스트림 서비스에 대한 구독 생성; Service Bus 트랜잭션을 사용하여 수신 메시지를 완료하고 동일한 트랜잭션에서 두 개의 아웃바운드 메시지 전송; 손상된 메시지에 대해서는 구독의 dead-letter subqueue에 의존합니다..
이것이 정답인 이유
이 솔루션은 메시징 요구 사항을 정확하게 충족합니다. Azure Service Bus 토픽의 세션(sessionId=OrderId)은 OrderId별로 메시지 순서를 보장하여 관련 메시지(주문 생성됨, 결제 승인됨 등)가 순서대로 처리되도록 합니다. Service Bus 트랜잭션은 수신 메시지 완료와 두 개의 아웃바운드 메시지 전송을 원자적으로 처리하여 '주문 생성됨' 메시지 처리 시 올인원 또는 롤백을 보장합니다. 각 다운스트림 서비스에 대한 구독은 팬아웃을 허용하며, dead-letter subqueue는 손상된 메시지를 손실 없이 격리합니다.
다른 옵션들은 다음 이유로 적합하지 않습니다.
세션이 없는 Service Bus 큐는 메시지 순서를 보장하지 않습니다.
Azure Storage Queue는 메시지 순서를 보장하지 않으며 트랜잭션 기능을 제공하지 않습니다.
Azure Event Grid는 순서 지정을 보장하지 않으며 트랜잭션 기능을 제공하지 않습니다.
세션이 없는 Service Bus 토픽은 메시지 순서를 보장하지 않으며, 파티션 키는 세션과 동일한 수준의 순서 보장을 제공하지 않습니다.