Menemukan antrean Azure Service Bus, topik, dan langganan

Selesai

Entitas olahpesan yang membentuk inti kemampuan olahpesan di Service Bus adalah antrean, topik dan langganan, serta aturan/tindakan.

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. Karena pesan disimpan dalam antrean, produsen (pengirim) dan konsumen (penerima) tidak perlu memproses pesan secara bersamaan.

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.

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 satu sama lain, konsumen dapat ditingkatkan tanpa berpengaruh pada produsen.

Anda dapat membuat antrean menggunakan portal Microsoft Azure, PowerShell, CLI, atau templat Resource Manager. Kemudian, kirim dan terima pesan menggunakan klien yang ditulis dalam C#, Java, Python, JavaScript.

Mode terima

Anda dapat menentukan dua mode yang berbeda saat Azure Service Bus menerima pesan: Terima dan hapus atau Intip kunci.

Terima atau hapus

Dalam mode ini, ketika Bus Layanan menerima permintaan dari konsumen, itu 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. Misalnya, pertimbangkan skenario di mana konsumen mengeluarkan permintaan terima dan kemudian mengalami crash sebelum memprosesnya. Saat Bus Layanan menandai pesan sebagai digunakan, aplikasi mulai mengonsumsi pesan saat dimulai ulang. Ini melewatkan pesan yang dikonsumsi sebelum crash.

Peek lock

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.

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 serta langganan. Ini berguna untuk penskalaan pada sejumlah besar penerima. Setiap pesan yang dipublikasikan disediakan untuk setiap langganan yang terdaftar dengan topik tersebut. Penerbit mengirim pesan ke topik dan satu atau beberapa pelanggan menerima salinan pesan, bergantung pada aturan filter yang diatur pada langganan ini. 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.

Membuat topik mirip dengan membuat antrean, seperti yang dijelaskan di bagian sebelumnya. Anda dapat membuat topik dan langganan menggunakan portal Microsoft Azure, PowerShell, CLI, atau templat Resource Manager. Kemudian, kirim pesan ke topik dan terima pesan dari langganan menggunakan klien yang ditulis dalam C#, Java, Python, JavaScript.

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. Saat langganan Service Bus melihat semua pesan yang dikirim ke topik ini, Anda hanya dapat 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.