Получение счетчиков сообщений
В этой статье показано, как получить количество сообщений для очереди или подписки. Знание числа активных сообщений помогает определить, создает ли очередь невыполненную работу, которая требует больше ресурсов для обработки, чем развернуто в настоящее время.
Счетчик | Description |
---|---|
ActiveMessageCount | Число сообщений в очереди или подписке, которые находятся в активном состоянии и готовы к доставке. К ним относятся отложенные сообщения. |
ScheduledMessageCount | Число сообщений в запланированном состоянии. |
DeadLetterMessageCount | Число сообщений в очереди недоставленных сообщений. |
TransferMessageCount | Число сообщений, ожидающих передачи в другую очередь или раздел. |
TransferDeadLetterMessageCount | Число сообщений, которые не удалось перенести в другую очередь или раздел и которые были перемещены в очередь недоставленных сообщений. |
Если приложению требуется масштабировать ресурсы в зависимости от длины очереди, оно должно делать это размеренно. Получение данных счетчиков сообщений является ресурсоемкой операцией в брокере обмена сообщениями, и частое ее выполнение напрямую негативно влияет на производительность сущности.
Еще одна полезная метрика для масштабирования — это время между отправкой последнего сообщения и его обработкой, также известной как "критическое время". Это полезно для сценариев, когда очередь может содержать тысячи сообщений в ней, но обработка достаточно быстра для поддержания, давая "критическое время" всего за пару секунд, что может быть более чем достаточно для того, чтобы что-то вроде конечной точки отправки электронной почты. Сторонние библиотеки, такие как NServiceBus , выдают эти и другие полезные метрики через OpenTelemetry.
Примечание.
Сообщения, отправляемые в разделе служебной шины, переадресовываются тем, кто подписался на этот раздел. Таким образом, количество активных сообщений в самом разделе равно 0, так как эти сообщения были успешно переадресованы подписчикам. Получите количество сообщений для подписки и убедитесь, что оно больше 0. Даже если вы видите сообщения для подписки, они фактически хранятся в хранилище, принадлежащем разделу. Если вы посмотрите на подписки, то они будут иметь ненулевое число сообщений, которые способствуют хранилищу, используемому разделом.
Используя портал Azure
Перейдите к пространству имен и выберите очередь. Счетчики сообщений отображаются на странице Обзор очереди.
Перейдите к пространству имен, выберите раздел, а затем подписку для раздела. Счетчики сообщений отображаются на странице Обзор очереди.
Использование 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.
- Примеры для клиентской библиотеки Служебной шины Azure для .NET (последняя версия)
- Примеры для клиентской библиотеки Служебной шины Azure для Java (последняя версия)
- Примеры для клиентской библиотеки Служебной шины Azure для Python
- Примеры для клиентской библиотеки Служебной шины Azure для JavaScript
- Примеры для клиентской библиотеки Служебной шины Azure для TypeScript
Примеры для более ранних клиентских библиотек .NET и Java см. ниже.
- Примеры для клиентской библиотеки Служебной шины Azure для .NET (прежние версии)
- Примеры для клиентской библиотеки Служебной шины Azure для Java (прежние версии)
30 сентября 2026 г. мы удалим библиотеки пакета SDK Служебная шина Azure WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus и com.microsoft.azure.servicebus, которые не соответствуют рекомендациям по пакету SDK Azure. Мы также завершим поддержку протокола SBMP, поэтому вы больше не сможете использовать этот протокол после 30 сентября 2026 года. Перейдите в последние библиотеки пакета SDK Azure, которые предлагают критически важные обновления системы безопасности и улучшенные возможности до этой даты.
Хотя старые библиотеки по-прежнему могут использоваться после 30 сентября 2026 года, они больше не будут получать официальную поддержку и обновления от Майкрософт. Дополнительные сведения см. в объявлении о выходе на пенсию в службу поддержки.