Obtención de contadores de mensajes
En este artículo se muestran diferentes maneras de obtener recuentos de mensajes para una cola o suscripción. Conocer el número de mensajes activos resulta de utilidad para determinar si una cola crea un trabajo pendiente que requiere procesar más recursos que los que se han implementado actualmente.
Contador | Descripción |
---|---|
ActiveMessageCount | Número de mensajes de la cola o la suscripción que se encuentran en estado activo y listo para la entrega. Esto incluye mensajes diferidos. |
ScheduledMessageCount | Número de mensajes en estado programado. |
DeadLetterMessageCount | Número de mensajes en la cola de mensajes fallidos. |
TransferMessageCount | Número de mensajes pendientes de transferencia en otra cola o tema. |
TransferDeadLetterMessageCount | Número de mensajes que no se pudieron transferir a otra cola u otro tema y se han movido a la cola de mensajes fallidos de transferencia. |
Si una aplicación desea escalar recursos en función de la longitud de la cola, debe hacerlo con un ritmo medido. La adquisición de los contadores de mensajes es una operación costosa en el agente de mensajes y ejecutarla con frecuencia afecta de forma directa y adversa al rendimiento de la entidad.
Otra métrica útil que se debe tener en cuenta para el escalado es el tiempo entre el momento en que se envió el mensaje más reciente y el momento en que se procesó, también conocido como "tiempo crítico". Esto es útil para escenarios en los que una cola puede tener miles de mensajes, pero el procesamiento es lo suficientemente rápido como para seguir el ritmo, dando un "tiempo crítico" de solo un par de segundos, lo que puede ser más que suficiente para algo como un punto de conexión de envío de correo electrónico. Las bibliotecas de terceros como NServiceBus emiten esta y otras métricas útiles a través de OpenTelemetry.
Nota:
Los mensajes que se envían a un tema de Service Bus se reenvían a las suscripciones de ese tema. Por lo tanto, el número de mensajes activos en el propio tema es 0, ya que esos mensajes se han reenviado correctamente a la suscripción. Obtenga el número de mensajes en la suscripción y compruebe que es mayor que 0. Aunque vea mensajes en la suscripción, realmente se almacenan en un almacenamiento que pertenece al tema. Si examina las suscripciones, tendrían un recuento de mensajes distinto de cero, que contribuyen al almacenamiento usado por el tema.
Uso de Azure Portal
Vaya al espacio de nombres y seleccione la cola. Verá contadores de mensajes en la página Información general de la cola.
Vaya al espacio de nombres, seleccione el tema y, a continuación, seleccione la suscripción para el tema. Verá contadores de mensajes en la página Información general de la cola.
Uso de la CLI de Azure
Use el comando az servicebus queue show
para obtener los detalles del recuento de mensajes de una cola, como se muestra en el ejemplo siguiente.
az servicebus queue show --resource-group myresourcegroup \
--namespace-name mynamespace \
--name myqueue \
--query countDetails
Este es una salida de ejemplo:
ActiveMessageCount DeadLetterMessageCount ScheduledMessageCount TransferMessageCount TransferDeadLetterMessageCount
-------------------- ------------------------ ----------------------- ---------------------- --------------------------------
0 0 0 0 0
Use el comando az servicebus topic subscription show
para obtener los detalles del recuento de mensajes de una suscripción, como se muestra en el ejemplo siguiente.
az servicebus topic subscription show --resource-group myresourcegroup \
--namespace-name mynamespace \
--topic-name mytopic \
--name mysub \
--query countDetails
Uso de Azure PowerShell
Con PowerShell, puede obtener los detalles del recuento de mensajes de una cola como se indica a continuación:
$queueObj=Get-AzServiceBusQueue -ResourceGroup myresourcegroup `
-NamespaceName mynamespace `
-QueueName myqueue
$queueObj.CountDetails
Esta es la salida de ejemplo:
ActiveMessageCount : 7
DeadLetterMessageCount : 1
ScheduledMessageCount : 3
TransferMessageCount : 0
TransferDeadLetterMessageCount : 0
puede obtener los detalles del recuento de mensajes de una suscripción de la siguiente manera:
$topicObj= Get-AzServiceBusSubscription -ResourceGroup myresourcegroup `
-NamespaceName mynamespace `
-TopicName mytopic `
-SubscriptionName mysub
$topicObj.CountDetails
El objeto MessageCountDetails
devuelto tiene las siguientes propiedades: ActiveMessageCount
, DeadLetterMessageCount
, ScheduledMessageCount
, TransferDeadLetterMessageCount
, TransferMessageCount
.
Pasos siguientes
Pruebe los ejemplos en el lenguaje que prefiera para explorar las características de Azure Service Bus.
- Ejemplos de la biblioteca cliente de Azure Service Bus para .NET (versión más reciente)
- Ejemplos de la biblioteca cliente de Azure Service Bus para Java (versión más reciente)
- Ejemplos de la biblioteca cliente de Azure Service Bus para Python
- Ejemplos de la biblioteca cliente de Azure Service Bus para JavaScript
- Ejemplos de la biblioteca cliente de Azure Service Bus para TypeScript
A continuación, encontrará ejemplos de las bibliotecas cliente de .NET y Java anteriores:
- Ejemplos de la biblioteca cliente de Azure Service Bus para .NET (versión heredada)
- Ejemplos de la biblioteca cliente de Azure Service Bus para Java (versión heredada)
El 30 de septiembre de 2026, retiraremos las bibliotecas del SDK de Azure Service Bus WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus y com.microsoft.azure.servicebus, que no se ajustan a las directrices del SDK de Azure. También retiraremos el soporte del protocolo SBMP, por lo que ya no podrás usar este protocolo después del 30 de septiembre de 2026. Migre a las bibliotecas más recientes del SDK de Azure, que ofrecen actualizaciones de seguridad críticas y funcionalidades mejoradas, antes de esa fecha.
Aunque las bibliotecas anteriores todavía se pueden usar después del 30 de septiembre de 2026, ya no recibirán soporte técnico oficial ni actualizaciones de Microsoft. Para obtener más información, consulte el anuncio de retirada de soporte técnico.