Bagikan melalui


Mendapatkan penghitung pesan

Artikel ini memperlihatkan kepada Anda berbagai cara untuk mendapatkan jumlah pesan untuk antrean atau langganan. Mengetahui jumlah pesan aktif sangat berguna dalam menentukan apakah antrean membangun backlog yang membutuhkan lebih banyak sumber daya untuk diproses daripada apa yang saat ini telah digunakan.

Penghitung Deskripsi
ActiveMessageCount Jumlah pesan dalam antrean atau langganan yang dalam keadaan aktif dan siap dikirim. Ini termasuk pesan yang ditangguhkan.
ScheduledMessageCount Jumlah pesan dalam status terjadwal.
DeadLetterMessageCount Jumlah pesan dalam antrean dead-letter.
TransferMessageCount Jumlah pesan yang tertunda untuk ditransfer ke antrean atau topik lain.
TransferDeadLetterMessageCount Jumlah pesan yang gagal ditransfer ke antrean atau topik lain dan telah dipindahkan ke dalam antrean transfer dead-letter.

Jika aplikasi ingin menskalakan sumber daya berdasarkan panjang antrean, aplikasi harus melakukannya dengan kecepatan yang terukur. Akuisisi penghitung pesan adalah operasi mahal di dalam broker pesan, dan sering mengeksekusinya secara langsung dan berdampak buruk pada performa entitas.

Metrik lain yang berguna untuk dipertimbangkan untuk penskalaan adalah waktu antara ketika pesan terbaru dikirim dan ketika diproses, juga dikenal sebagai "waktu kritis". Ini berguna untuk skenario di mana antrean mungkin memiliki ribuan pesan di dalamnya, tetapi pemrosesannya cukup cepat untuk mengikuti, memberikan "waktu kritis" hanya beberapa detik, yang mungkin lebih dari cukup untuk sesuatu seperti titik akhir pengiriman email. Pustaka pihak ketiga seperti NServiceBus memancarkan metrik ini dan metrik berguna lainnya melalui OpenTelemetry.

Catatan

Pesan yang dikirim ke topik Bus Layanan diteruskan ke langganan untuk topik tersebut. Jadi, pesan aktif mengandalkan topik itu sendiri adalah 0, karena pesan-pesan itu telah berhasil diteruskan ke langganan. Dapatkan jumlah pesan di langganan dan verifikasikan bahwa pesan tersebut lebih besar dari 0. Meskipun Anda melihat pesan di langganan, pesan-pesan tersebut benar-benar disimpan dalam penyimpanan yang dimiliki oleh topik tersebut. Jika Anda melihat langganan, maka mereka akan memiliki jumlah pesan non-nol, yang berkontribusi pada penyimpanan yang digunakan oleh topik.

Menggunakan portal Azure

Buka namespace Anda, dan pilih antrean. Anda melihat penghitung pesan di halaman Ringkasan untuk antrean.

Cuplikan layar memperlihatkan halaman Gambaran Umum antrean dengan bagian Jumlah Pesan disorot.

Buka namespace Anda, pilih topik, lalu pilih langganan untuk topik tersebut. Anda melihat penghitung pesan di halaman Ringkasan untuk antrean.

Cuplikan layar memperlihatkan halaman Gambaran Umum langganan topik dengan bagian Jumlah Pesan disorot.

Menggunakan Azure CLI

Gunakan perintah az servicebus queue show untuk mendapatkan detail penghitungan pesan untuk antrean, seperti yang diperlihatkan dalam contoh berikut.

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

Berikut adalah sampel output:

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

Gunakan perintah az servicebus topic subscription show untuk mendapatkan detail penghitungan pesan untuk langganan, seperti yang diperlihatkan dalam contoh berikut.

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

Menggunakan Azure PowerShell

Dengan PowerShell, Anda bisa mendapatkan detail jumlah pesan untuk antrean sebagai berikut:

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

$queueObj.CountDetails

Berikut sampel outputnya:

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

Anda bisa mendapatkan detail penghitungan pesan untuk langganan sebagai berikut:

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

$topicObj.CountDetails

Objek MessageCountDetails yang dikembalikan memiliki properti berikut: ActiveMessageCount, DeadLetterMessageCount, ScheduledMessageCount, TransferDeadLetterMessageCount, TransferMessageCount.

Langkah berikutnya

Cobalah sampel dalam bahasa pilihan Anda untuk menjelajahi fitur Azure Service Bus.

Temukan sampel untuk pustaka klien .NET dan Java yang lebih lama di bawah ini:

Pada 30 September 2026, kami akan menghentikan pustaka Azure Bus Layanan SDK WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus, dan com.microsoft.azure.servicebus, yang tidak sesuai dengan panduan Azure SDK. Kami juga akan mengakhiri dukungan protokol SBMP, sehingga Anda tidak akan lagi dapat menggunakan protokol ini setelah 30 September 2026. Migrasikan ke pustaka Azure SDK terbaru, yang menawarkan pembaruan keamanan penting dan kemampuan yang ditingkatkan, sebelum tanggal tersebut.

Meskipun pustaka lama masih dapat digunakan melebihi 30 September 2026, pustaka tersebut tidak akan lagi menerima dukungan dan pembaruan resmi dari Microsoft. Untuk informasi selengkapnya, lihat pengumuman penghentian dukungan.