다음을 통해 공유


메시지 카운터 가져오기

이 문서에서는 큐 또는 구독에 대해 메시지 수를 가져오는 다양한 방법을 보여 줍니다. 활성 메시지 수를 알면 큐가 현재 배포된 것보다 더 많은 리소스를 처리해야 하는 백로그를 빌드하는지 여부를 파악하는 데 유용합니다.

카운터 설명
ActiveMessageCount 활성 상태에 있고 전송 준비가 된 큐 또는 구독의 메시지 수입니다. 여기에는 지연된 메시지가 포함됩니다.
ScheduledMessageCount 예약된 상태의 메시지 수입니다.
DeadLetterMessageCount 배달 못 한 편지 큐의 메시지 수입니다.
TransferMessageCount 다른 큐 또는 토픽으로 전송 보류 중인 메시지 수입니다.
TransferDeadLetterMessageCount 다른 큐 또는 토픽으로 전송하지 못하고 배달 못 한 편지 큐로 이동된 메시지 수입니다.

애플리케이션이 큐의 길이에 따라 리소스 크기를 조정하려는 경우 정교한 속도로 조정해야 합니다. 메시지 카운터를 확보하는 작업은 메시지 broker 내부에 비용이 많이 소요되며 빈번하게 직접 실행하면 엔터티 성능에 부정적인 영향을 줍니다.

크기 조정을 위해 고려해야 할 또 다른 유용한 메트릭은 최신 메시지를 보낸 시간과 처리된 시간 사이의 시간("중요한 시간")입니다. 이는 대기열에 수천 개의 메시지가 있을 수 있지만 처리 속도가 충분히 빨라서 전자 메일 전송 엔드포인트와 같이 “중요한 시간”이 몇 초에 불과한 시나리오에 유용합니다. NServiceBus와 같은 타사 라이브러리는 OpenTelemetry를 통해 이 메트릭을 비롯한 그 밖의 유용한 메트릭을 내보냅니다.

참고 항목

Service Bus 토픽으로 송신되는 메시지는 해당 토픽의 구독으로 전달됩니다. 따라서 성공적으로 메시지가 구독으로 전달되면 토픽 자체의 활성 메시지 수는 0입니다. 구독에서 메시지 수를 가져오고 0보다 큰지 확인합니다. 메시지를 확인하는 위치는 구독이지만 메시지가 실제로 저장되는 위치는 토픽 소유의 스토리지입니다. 구독을 살펴보면 0이 아닌 메시지 수가 있으며 이는 토픽에서 사용하는 스토리지에 영향을 줍니다.

Azure Portal 사용

네임스페이스로 이동하여 큐를 선택합니다. 큐의 개요 페이지에 메시지 카운터가 표시됩니다.

메시지 수 섹션이 강조 표시된 큐의 개요 페이지를 보여 주는 스크린샷

네임스페이스로 이동하여 항목을 선택한 다음, 항목에 대한 구독을 선택합니다. 큐의 개요 페이지에 메시지 카운터가 표시됩니다.

메시지 수 섹션이 강조 표시된 토픽 구독의 개요 페이지를 보여 주는 스크린샷

Azure CLI 사용

az servicebus queue show 명령을 사용하여 다음 예제와 같이 큐에 대한 메시지 수 세부 정보를 가져옵니다.

az servicebus queue show --resource-group myresourcegroup \
    --namespace-name mynamespace \
    --name myqueue \
    --query countDetails

샘플 출력은 다음과 같습니다.

ActiveMessageCount    DeadLetterMessageCount    ScheduledMessageCount    TransferMessageCount    TransferDeadLetterMessageCount
--------------------  ------------------------  -----------------------  ----------------------  --------------------------------
0                     0                         0                        0                       0

az servicebus topic subscription show 명령을 사용하여 다음 예제와 같이 구독에 대한 메시지 수 세부 정보를 가져옵니다.

az servicebus topic subscription show --resource-group myresourcegroup \
    --namespace-name mynamespace \
    --topic-name mytopic \
    --name mysub \
    --query countDetails

Azure PowerShell 사용

PowerShell을 사용하여 다음과 같이 큐에 대한 메시지 수 세부 정보를 가져올 수 있습니다.

$queueObj=Get-AzServiceBusQueue -ResourceGroup myresourcegroup `
                    -NamespaceName mynamespace `
                    -QueueName myqueue 

$queueObj.CountDetails

샘플 출력은 다음과 같습니다.

ActiveMessageCount             : 7
DeadLetterMessageCount         : 1
ScheduledMessageCount          : 3
TransferMessageCount           : 0
TransferDeadLetterMessageCount : 0

다음과 같이 구독에 대한 메시지 수 세부 정보를 가져올 수 있습니다.

$topicObj= Get-AzServiceBusSubscription -ResourceGroup myresourcegroup `
                -NamespaceName mynamespace `
                -TopicName mytopic `
                -SubscriptionName mysub

$topicObj.CountDetails

반환된 MessageCountDetails 개체에는 ActiveMessageCount, DeadLetterMessageCount, ScheduledMessageCount, TransferDeadLetterMessageCount, TransferMessageCount 속성이 있습니다.

다음 단계

선택한 언어로 샘플을 사용하여 Azure Service Bus 기능을 살펴봅니다.

이전 .NET 및 Java 클라이언트 라이브러리에 대한 샘플은 다음을 참조하세요.

2026년 9월 30일에 Azure SDK 지침을 따르지 않는 Azure Service Bus SDK 라이브러리 WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus 및 com.microsoft.azure.servicebus를 사용 중지합니다. 또한 SBMP 프로토콜에 대한 지원이 종료되므로 2026년 9월 30일 이후에는 더 이상 이 프로토콜을 사용할 수 없습니다. 해당 날짜 마이그레이션에 중요한 보안 업데이트와 개선된 기능을 제공하는 최신 Azure SDK 라이브러리로 마이그레이션합니다.

이전 라이브러리는 2026년 9월 30일 이후에도 계속 사용할 수 있지만 더 이상 Microsoft로부터 공식 지원 및 업데이트를 받을 수 없습니다. 자세한 내용은 사용 중지 공지 지원을 참조하세요.