Antrean, topik, dan langganan Microsoft Azure Service Bus

Azure Bus Layanan mendukung antrean pesan yang andal dan pesan penerbitan/berlangganan yang tahan lama. Entitas olahpesan yang membentuk inti kemampuan olahpesan dalam Bus Layanan adalah antrean, topik, dan langganan.

Penting

Jika Anda baru menggunakan Azure Bus Layanan, baca Apa itu Azure Bus Layanan? sebelum melalui artikel ini.

Antrean

Antrean menawarkan pengiriman pesan Pertama Datang, Pertama Keluar (FIFO) kepada satu atau beberapa konsumen yang bersaing. Artinya, penerima biasanya menerima dan memproses pesan dalam urutan di mana mereka ditambahkan ke antrean. Dan hanya satu pesan yang diterima konsumen dan memproses setiap pesan.

Image showing how Service Queues work.

Manfaat utama menggunakan antrean adalah untuk mencapai pemisahan sementara komponen aplikasi. Dengan kata lain, produsen (pengirim) dan konsumen (penerima) tidak perlu mengirim dan menerima pesan secara bersamaan, karena pesan disimpan dengan durab dalam antrean. Selain itu, produsen tidak perlu menunggu balasan dari konsumen untuk terus memproses dan mengirim pesan.

Manfaat terkait adalah tingkat beban, yang memungkinkan produsen dan konsumen untuk mengirim dan menerima pesan dengan tarif yang berbeda. Dalam banyak aplikasi, beban sistem bervariasi dari waktu ke waktu. Namun, waktu pemrosesan yang diperlukan untuk setiap unit pekerjaan biasanya konstan. Perantara produsen pesan dan konsumen dengan antrean berarti bahwa aplikasi yang menggunakan hanya harus dapat menangani beban rata-rata, bukan beban puncak. Kedalaman antrean tumbuh dan berkontraksi karena beban yang masuk bervariasi. Kemampuan ini secara langsung menghemat uang sehubungan dengan jumlah infrastruktur yang diperlukan untuk melayani beban aplikasi. Ketika beban meningkat, lebih banyak proses pekerja dapat ditambahkan untuk membaca dari antrean. Setiap pesan hanya diproses oleh salah satu proses pekerja. Selain itu, penyeimbangan beban berbasis penarikan ini memungkinkan penggunaan komputer pekerja dengan sebaik-baiknya meskipun komputer pekerja dengan pemrosesan pesan daya penarikan dengan laju maksimum mereka sendiri. Pola ini sering disebut pola konsumen yang bersaing.

Menggunakan antrian untuk menjadi perantara antara produsen pesan dan konsumen memberikan konektor longgar yang melekat di antara komponen. Karena produsen dan konsumen tidak saling menyadari, konsumen dapat ditingkatkan tanpa berpengaruh pada produsen.

Membuat antrean

Anda dapat membuat antrean menggunakan salah satu opsi berikut:

Kemudian, kirim dan terima pesan menggunakan klien yang ditulis dalam bahasa pemrograman termasuk yang berikut:

Mode terima

Anda dapat menentukan dua mode berbeda di mana konsumen dapat menerima pesan dari Bus Layanan.

  • Terima dan hapus. Dalam mode ini, ketika menerima permintaan dari konsumen, Service Bus menandai pesan sebagai digunakan dan mengembalikannya ke aplikasi konsumen. Mode ini adalah model paling sederhana. Mode ini bekerja paling baik untuk skenario di mana aplikasi dapat mentolerir tidak memproses pesan jika terjadi kegagalan. Untuk memahami skenario ini, pertimbangkan skenario saat konsumen mengeluarkan permintaan terima kemudian terjadi crash sebelum memprosesnya. Saat Bus Layanan menandai pesan sebagai digunakan, aplikasi mulai mengonsumsi pesan saat dimulai ulang. Service Bus akan kehilangan pesan yang digunakan sebelum terjadinya crash. Proses ini sering disebut pemrosesan paling banyak sekali .
  • Kunci peek. Dalam mode ini, operasi penerima menjadi dua tahap, yang memungkinkan untuk mendukung aplikasi yang tidak dapat mentolerir pesan yang hilang.
    1. Menemukan pesan berikutnya yang akan dikonsumsi, mengunci pesan tersebut untuk mencegah konsumen lain menerimanya, dan kemudian, mengembalikan pesan ke aplikasi.

    2. Setelah selesai memproses pesan, aplikasi akan meminta layanan Service Bus untuk menyelesaikan tahap kedua dari proses menerima. Kemudian, layanan menandai pesan sebagai digunakan.

      Jika aplikasi tidak dapat memproses pesan karena alasan tertentu, aplikasi dapat meminta layanan Bus Layanan untuk meninggalkan pesan. Service Bus membuka pesan dan membuatnya tersedia untuk diterima lagi, baik oleh konsumen yang sama atau konsumen lain yang bersaing. Kedua, ada batas waktu yang terkait dengan penguncian. Jika aplikasi gagal memproses pesan sebelum batas waktu penguncian berakhir, Service Bus akan membuka kunci pesan dan membuatnya tersedia untuk diterima lagi.

      Jika aplikasi mengalami crash setelah memproses pesan, tetapi sebelum meminta layanan Service Bus untuk menyelesaikan pesan, Service Bus akan mengirim ulang pesan ke aplikasi saat dimulai ulang. Proses ini sering disebut pemrosesan setidaknya sekali. Artinya, setiap pesan diproses setidaknya sekali. Namun, dalam situasi tertentu pesan yang sama mungkin disebarkan ulang. Jika skenario Anda tidak dapat mentolerir pemrosesan duplikat, tambahkan logika tambahan di aplikasi Anda untuk mendeteksi duplikat. Untuk informasi selengkapnya, lihat Deteksi duplikat, yang dikenal sebagai pemrosesan tepat sekali .

      Catatan

      Untuk informasi selengkapnya tentang dua mode ini, lihat Menyelesaikan operasi penerima.

Topik dan langganan

Antrean memungkinkan pemrosesan pesan oleh satu konsumen. Berbeda dengan antrean, topik, dan langganan menyediakan bentuk komunikasi satu-ke-banyak dalam pola publikasi dan berlangganan. Ini berguna untuk penskalaan pada sejumlah besar penerima. Setiap pesan yang dipublikasikan disediakan untuk setiap langganan yang terdaftar dengan topik tersebut. Publisher mengirim pesan ke topik dan satu atau beberapa pelanggan menerima salinan pesan.

Image showing a Service Bus topic with three subscriptions.

Langganan dapat menggunakan lebih banyak filter untuk membatasi pesan yang ingin mereka terima. Penerbit mengirim pesan ke topik dengan cara yang sama seperti mereka mengirim pesan ke antrean. Tapi, konsumen tidak menerima pesan langsung dari topik. Sebagai gantinya, konsumen menerima pesan dari langganan topik. Langganan topik menyerupai antrean virtual yang menerima salinan pesan yang dikirimkan ke topik. Konsumen menerima pesan dari langganan secara identik dengan cara mereka menerima pesan dari antrean.

Fungsionalitas pengirim pesan dari peta antrean langsung ke topik dan peta fungsionalitas penerima pesan ke langganan. Di antara yang lainnya, fitur ini berarti bahwa langganan mendukung pola yang sama yang dijelaskan sebelumnya di bagian ini sehubungan dengan antrean: konsumen yang bersaing, pemisahan sementara, tingkat beban, dan penyeimbangan beban.

Membuat topik dan langganan

Membuat topik mirip dengan membuat antrean, seperti yang dijelaskan di bagian sebelumnya. Anda bisa membuat topik dan langganan menggunakan salah satu opsi berikut:

Kemudian, kirim pesan ke topik dan terima pesan dari langganan menggunakan klien yang ditulis dalam bahasa pemrograman termasuk yang berikut:

Aturan dan tindakan

Dalam banyak skenario, pesan yang memiliki karakteristik khusus harus diproses dengan cara yang berbeda. Untuk mengaktifkan pemrosesan ini, Anda bisa mengonfigurasi langganan untuk menemukan pesan yang memiliki properti yang diinginkan lalu melakukan modifikasi tertentu pada properti tersebut. Meskipun langganan Bus Layanan melihat semua pesan yang dikirim ke topik tersebut, dimungkinkan untuk hanya menyalin subset pesan tersebut ke antrean langganan virtual. Pemfilteran ini dilakukan menggunakan filter langganan. Modifikasi semacam itu disebut tindakan filter. Saat langganan dibuat, Anda dapat menyediakan ekspresi filter yang beroperasi pada properti pesan. Properti dapat berupa properti sistem (misalnya, Label) dan properti aplikasi kustom (misalnya, StoreName.) Dalam kasus ini, ekspresi filter SQL bersifat opsional. Tanpa ekspresi filter SQL, tindakan filter apa pun yang ditentukan pada langganan dilakukan pada semua pesan untuk langganan tersebut.

Untuk melihat secara lengkap contoh yang sedang bekerja, lihat sampel TopicFiltersdi GitHub. Untuk informasi selengkapnya tentang filter, lihat Filter dan tindakan topik.

Entitas layanan pesan Java (JMS) 2.0

Entitas berikut dapat diakses melalui Java message service (JMS) 2.0 API.

  • Antrean sementara
  • Topik sementara
  • Langganan bersama yang tahan lama
  • Langganan privat yang tahan lama
  • Langganan bersama yang tidak tahan lama
  • Langganan privat yang tidak tahan lama

Pelajari lebih lanjut tentang entitas JMS 2.0 dan tentang cara menggunakannya.

Langkah berikutnya

Coba sampel dalam bahasa pilihan Anda:

Untuk sampel yang menggunakan pustaka klien .NET dan Java yang lebih lama, gunakan tautan berikut:

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.