Recuperare i contatori di messaggi
Questo articolo illustra diversi metodi per ottenere il numero di messaggi per una coda o una sottoscrizione. Il conteggio dei messaggi attivi è utile per stabilire se una coda crea un backlog che richiede più risorse per essere elaborato rispetto a quelle attualmente distribuite.
Contatore | Descrizione |
---|---|
ActiveMessageCount | Numero di messaggi nella coda o nella sottoscrizione che sono in stato attivo e pronti per la consegna. Sono inclusi i messaggi posticipati. |
ScheduledMessageCount | Numero di messaggi in stato pianificato. |
DeadLetterMessageCount | Numero di messaggi nella coda di messaggi non recapitabili. |
TransferMessageCount | Numero di messaggi in attesa di trasferimento in un'altra coda o in un altro argomento. |
TransferDeadLetterMessageCount | Numero di messaggi che non sono stati trasferiti in un'altra coda o in un altro argomento e sono stati spostati nella coda di messaggi non recapitabili di trasferimento. |
Se un'applicazione vuole ridimensionare le risorse in base alla lunghezza della coda, deve farlo in maniera limitata. L'acquisizione dei contatori di messaggi è un'operazione impegnativa all'interno del broker messaggi e, se viene eseguita frequentemente, influisce direttamente e negativamente sulle prestazioni dell'entità.
Un'altra metrica utile da tenere in considerazione per il ridimensionamento è il l'intervallo di tempo tra l'invio del messaggio più recente e la sua elaborazione, noto anche come "tempo critico". Questo è utile per gli scenari in cui una coda può contenere migliaia di messaggi, ma l'elaborazione è abbastanza veloce da tenere il passo, risultando in un "tempo critico" di un paio di secondi che può essere più che sufficiente per, ad esempio, un endpoint di invio di posta elettronica. Le librerie di terze parti come NServiceBus generano questa e altre metriche utili tramite OpenTelemetry.
Nota
I messaggi inviati a un argomento del bus di servizio vengono inoltrati alle sottoscrizioni per tale argomento. Pertanto, il conteggio dei messaggi attivi sull'argomento stesso è 0, in quanto tali messaggi sono stati inoltrati correttamente alla sottoscrizione. Ottenere il numero di messaggi nella sottoscrizione e verificare che sia maggiore di 0. Anche se vengono visualizzati alcuni messaggi nella sottoscrizione, questi sono in realtà archiviati in una risorsa di archiviazione di proprietà dell'argomento. Se si esaminano le sottoscrizioni, il numero di messaggi sarebbe diverso da zero, che contribuiscono alla risorsa di archiviazione usata dall'argomento.
Con il portale di Azure
Passare allo spazio dei nomi e selezionare la coda. Nella pagina Panoramica della coda sono mostrati i contatori di messaggi.
Passare allo spazio dei nomi, selezionare l'argomento e quindi la sottoscrizione per l'argomento. Nella pagina Panoramica della coda sono mostrati i contatori di messaggi.
Utilizzare l'interfaccia della riga di comando di Azure
Usare il comando az servicebus queue show
per ottenere i dettagli del numero di messaggi per una coda, come illustrato nell'esempio seguente.
az servicebus queue show --resource-group myresourcegroup \
--namespace-name mynamespace \
--name myqueue \
--query countDetails
Di seguito è riportato un output di esempio:
ActiveMessageCount DeadLetterMessageCount ScheduledMessageCount TransferMessageCount TransferDeadLetterMessageCount
-------------------- ------------------------ ----------------------- ---------------------- --------------------------------
0 0 0 0 0
Usare il comando az servicebus topic subscription show
per ottenere i dettagli relativi al numero di messaggi per una sottoscrizione, come illustrato nell'esempio seguente.
az servicebus topic subscription show --resource-group myresourcegroup \
--namespace-name mynamespace \
--topic-name mytopic \
--name mysub \
--query countDetails
Uso di Azure PowerShell
Con PowerShell, è possibile ottenere i dettagli del numero di messaggi per una coda come indicato di seguito:
$queueObj=Get-AzServiceBusQueue -ResourceGroup myresourcegroup `
-NamespaceName mynamespace `
-QueueName myqueue
$queueObj.CountDetails
Di seguito è riportato l'output di esempio:
ActiveMessageCount : 7
DeadLetterMessageCount : 1
ScheduledMessageCount : 3
TransferMessageCount : 0
TransferDeadLetterMessageCount : 0
è possibile ottenere i dettagli del conteggio dei messaggi per una sottoscrizione come indicato di seguito:
$topicObj= Get-AzServiceBusSubscription -ResourceGroup myresourcegroup `
-NamespaceName mynamespace `
-TopicName mytopic `
-SubscriptionName mysub
$topicObj.CountDetails
L'oggetto MessageCountDetails
restituito ha le proprietà seguenti: ActiveMessageCount
, DeadLetterMessageCount
, ScheduledMessageCount
, TransferDeadLetterMessageCount
, TransferMessageCount
.
Passaggi successivi
Provare gli esempi nel linguaggio preferito per esplorare le funzionalità del bus di servizio di Azure.
- Esempi di libreria client del bus di servizio di Azure per .NET (versione più recente)
- Esempi di libreria client del bus di servizio di Azure per Java (versione più recente)
- Libreria client del bus di servizio di Azure per Python
- Esempi di libreria client del bus di servizio di Azure per JavaScript
- Esempi di libreria client del bus di servizio di Azure per TypeScript
Campioni per le librerie client .NET e Java precedenti possono essere trovati di seguito:
- Esempi di libreria client del bus di servizio di Azure per .NET (legacy)
- Esempi di libreria client del bus di servizio di Azure per Java (legacy)
Il 30 settembre 2026 verranno ritirate le librerie dell'SDK del bus di servizio di Azure WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus e com.microsoft.azure.servicebus, che non sono conformi alle linee guida di Azure SDK. Verrà terminato anche il supporto del protocollo SBMP, quindi non sarà più possibile usare questo protocollo dopo il 30 settembre 2026. Eseguire la migrazione alle librerie più recenti di Azure SDK, che offrono aggiornamenti critici della sicurezza e funzionalità migliorate, prima di tale data.
Anche se le librerie precedenti possono ancora essere usate oltre il 30 settembre 2026, non riceveranno più il supporto e gli aggiornamenti ufficiali da Microsoft. Per altre informazioni, vedere l'annuncio del ritiro del supporto.