Menautkan entitas Service Bus dengan autoforwarding

Fitur autoforwarding Service Bus memungkinkan Anda untuk menautkan antrean atau langganan ke antrean atau topik lain yang merupakan bagian dari namespace yang sama. Saat autoforwarding diaktifkan, Service Bus secara otomatis menghapus pesan yang ditempatkan di antrean pertama atau langganan (sumber) dan menempatkannya di antrean kedua atau topik (tujuan). Masih mungkin untuk mengirim pesan ke entitas tujuan secara langsung.

Catatan

Tingkatan dasar Service Bus tidak mendukung fitur autoforwarding. Untuk perbedaan antar tingkatan, lihat Harga Bus Layanan.

Entitas tujuan harus ada saat entitas sumber dibuat. Jika entitas tujuan tidak ada, Bus Layanan mengembalikan pengecualian saat diminta untuk membuat entitas sumber.

Skenario

Memperluas skala topik individual

Anda dapat menggunakan autoforwarding untuk memperluas skala topik individual. Service Bus membatasi jumlah langganan pada topik tertentu menjadi 2.000. Anda dapat mengakomodasi lebih banyak langganan dengan membuat topik tingkat kedua. Bahkan jika Anda tidak terikat oleh batasan Bus Layanan pada jumlah langganan, menambahkan topik tingkat kedua dapat meningkatkan throughput keseluruhan topik Anda.

Diagram skenario autoforwarding memperlihatkan pesan yang diproses melalui Topik Pesanan yang dapat bercabang ke salah satu dari tiga Topik Pesanan tingkat kedua.

Memisahkan pengirim pesan dari penerima

Anda juga dapat menggunakan autoforwarding untuk memisahkan pengirim pesan dari penerima. Misalnya, pertimbangkan sistem Perencanaan Sumber Daya Perusahaan (ERP) yang terdiri dari tiga modul: pemrosesan pesanan, manajemen inventori, dan manajemen hubungan pelanggan. Tiap-tiap modul ini menghasilkan pesan yang diatrekan ke dalam topik yang sesuai. Alice dan Bob adalah perwakilan penjualan yang tertarik dengan semua pesan yang berhubungan dengan pelanggan mereka. Untuk menerima pesan tersebut, Alice dan Bob masing-masing membuat antrean pribadi dan langganan pada setiap topik ERP yang secara otomatis meneruskan semua pesan ke antrean mereka.

Diagram skenario autoforwarding memperlihatkan tiga modul pemrosesan mengirim pesan melalui tiga topik yang sesuai ke dua antrean terpisah.

Jika Alice pergi berlibur, antrean pribadinya akan terisi, alih-alih topik ERP. Dalam skenario ini, karena perwakilan penjualan belum menerima pesan apa pun, tidak ada topik ERP yang sudah mencapai kuota.

Catatan

Saat penerusan otomatis disiapkan, nilai untuk AutoDeleteOnIdle pada entitas sumber secara otomatis diatur ke nilai maksimum jenis data.

  • Di sisi sumber, penerusan otomatis bertindak sebagai operasi penerima, sehingga sumber yang memiliki penerusan otomatis diaktifkan tidak pernah benar-benar "menganggur" dan karenanya tidak akan dihapus secara otomatis.
  • Penerusan otomatis tidak membuat perubahan apa pun pada entitas tujuan. Jika AutoDeleteOnIdle diaktifkan pada entitas tujuan, entitas tersebut secara otomatis dihapus jika tidak aktif untuk interval diam yang ditentukan. Kami menyarankan agar Anda tidak mengaktifkan AutoDeleteOnIdle pada entitas tujuan karena jika entitas tujuan dihapus, entitas sumber akan terus melihat pengecualian saat mencoba meneruskan pesan tujuan tersebut.

Pertimbangan autoforwarding

  • Bus Layanan tidak mengizinkan pembuatan penerima pesan pada entitas sumber dengan autoforwarding diaktifkan.
  • Jika entitas tujuan mengumpulkan terlalu banyak pesan dan melebihi kuota, atau entitas tujuan dinonaktifkan, entitas sumber menambahkan pesan ke dead-letter queue hingga ada ruang kosong di tujuan (atau entitas kembali -diaktifkan). Pesan-pesan itu terus aktif dalam dead-letter queue, sehingga Anda harus secara eksplisit menerima dan memprosesnya dari dead-letter queue.
  • Saat menggabungkan topik individu untuk mendapatkan topik gabungan dengan banyak langganan, sebaiknya Anda memiliki langganan dalam jumlah sedang pada topik tingkat pertama dan banyak langganan pada topik tingkat kedua. Misalnya, topik tingkat pertama dengan 20 langganan, masing-masing ditautkan ke topik tingkat kedua dengan 200 langganan, memungkinkan throughput yang lebih tinggi daripada topik tingkat pertama dengan 200 langganan, masing-masing ditautkan ke topik tingkat kedua dengan 20 langganan.
  • Service Bus menagih satu operasi untuk setiap pesan yang diteruskan. Misalnya, mengirim pesan ke sebuah topik dengan 20 langganan, masing-masing dikonfigurasi ke pesan autoforward ke antrean atau topik lain, ditagih sebagai 21 operasi jika semua langganan tingkat pertama menerima salinan pesan.
  • Untuk membuat langganan yang dirantai ke antrean atau topik lain, pembuat langganan harus memiliki izin Kelola pada sumber dan entitas tujuan. Mengirim pesan ke topik sumber hanya memerlukan izin Kirim pada topik sumber.
  • Jangan membuat rantai yang melebihi empat hop. Pesan yang melebihi empat hop di-dead-letter. Jumlah hop pesan bertambah saat pesan dimunculkan secara otomatis dari satu antrean atau topik ke antrean atau topik lain. Jumlah hop pesan juga dapat bertambah dalam kirim melalui skenario di mana pesan dikirim melalui antrean transfer.
  • Autoforwarding tidak didukung untuk antrean atau langganan yang diaktifkan sesi.
  • Antrean sumber mencoba meneruskan pesan ke entitas tujuan dalam urutan yang sama dengan yang diterimanya, tetapi tujuannya bisa menjadi topik yang tidak mendukung pemesanan. Jika entitas sumber atau tujuan adalah entitas yang dipartisi, urutan tidak dijamin.

Langkah berikutnya

Untuk mempelajari cara mengaktifkan atau menonaktifkan penerusan otomatis dengan cara yang berbeda (portal Azure, PowerShell, CLI, templat Azure Resource Management, dll.), lihat Mengaktifkan penerusan otomatis untuk antrean dan langganan.