Apa yang dimaksud dengan Azure Service Bus?
Azure Service Bus adalah perantara pesan perusahaan yang dikelola sepenuhnya dengan antrean pesan dan topik terbitkan-berlangganan. Azure Service Bus digunakan untuk memisahkan aplikasi dan layanan serta berbagai keuntungan berikut:
- Tugas penyeimbangan beban di seluruh pekerja yang bersaing
- Perutean dan transfer data secara aman dan kontrol lintas batas layanan dan aplikasi
- Koordinasi tugas transaksi yang membutuhkan keandalan tingkat tinggi
Gambaran Umum
Data ditransfer antar aplikasi dan layanan yang berbeda menggunakan pesan. Pesan adalah wadah yang dilengkapi dengan metadata, dan berisi data. Data dapat berupa berbagai jenis informasi, termasuk data terstruktur yang dikodekan dengan format umum seperti berikut: JSON, XML, Apache Avro, dan Teks Biasa.
Beberapa skenario olahpesan umum adalah:
Olahpesan. Transfer data bisnis, seperti pesanan penjualan atau pembelian, jurnal, atau pergerakan inventaris.
Memisahkan aplikasi. Meningkatkan keandalan dan skalabilitas aplikasi dan layanan. Produsen dan konsumen tidak harus online atau mudah tersedia pada saat yang sama. Beban diratakan sedemikian rupa sehingga lonjakan lalu lintas tidak mengganggu layanan.
Penyeimbangan beban. Memungkinkan beberapa konsumen yang bersaing untuk membaca dari antrean pada saat yang sama, masing-masing mendapatkan kepemilikan eksklusif untuk pesan tertentu secara aman.
Topik dan langganan. Aktifkan1: n hubungan antara penerbit dan pelanggan,sehingga memungkinkan pelanggan untuk memilih pesan tertentu dari aliran pesan yang dipublikasikan.
Transaksi. Memungkinkan Anda untuk melakukan beberapa operasi yang semuanya berada dalam cakupan transaksi atomik. Misalnya, operasi berikut dapat dilakukan dalam cakupan transaksi.
- Mendapatkan pesan dari satu antrean.
- Posting hasil pemrosesan ke satu atau beberapa antrean yang berbeda.
- Pindahkan pesan masukan dari antrean asli.
Hasilnya terlihat oleh konsumen hilir hanya setelah berhasil, termasuk keberhasilan penyelesaian pesan input, sehingga memungkinkan semantik pemrosesan sekali saja. Model transaksi ini merupakan fondasi yang kuat pola transaksi kompensasi pada konteks solusi yang lebih besar.
Sesi pesan. Menerapkan koordinasi alur kerja berskala tinggi dan transfer multipleks yang memerlukan permintaan atau penundaan pesan yang ketat.
Jika Anda terbiasa dengan broker pesan lain seperti Apache ActiveMQ, konsep Service Bus mirip dengan hal tersebut. Karena Service Bus adalah penawaran platform-as-a-service (PaaS), perbedaan utamanya adalah Anda tidak perlu khawatir tentang tindakan berikut. Azure mengurus tugas-tugas itu untuk Anda.
- Mengkhawatirkan kegagalan perangkat keras
- Menjaga sistem operasi atau produk tetap terlindungi
- Menempatkan log dan mengelola ruang disk
- Menangani cadangan
- Gagal ke mesin cadangan
Konsep
Bagian ini membahas konsep dasar Azure Service Bus.
Antrean
Pesan dikirim ke antrean dan diterima dari antrean. Antrean menyimpan pesan hingga aplikasi penerima tersedia untuk menerima dan memprosesnya.
Pesan dalam antrean diurutkan dan diberi tanda waktu pada saat kedatangan. Setelah broker menerima pesan, pesan selalu disimpan dalam penyimpanan tiga kali lipat redundan, tersebar di zona ketersediaan jika namespace layanan diaktifkan zona. Bus Layanan menyimpan pesan dalam memori atau penyimpanan volatil hingga klien melaporkannya sebagaimana diterima.
Pesan dikirim dalam mode tarik, di mana pesan hanya dikirim ketika diminta. Tidak seperti model polling sibuk dari beberapa antrean cloud lain, operasi tarik dapat berumur panjang dan hanya selesai setelah pesan tersedia.
Catatan
Untuk perbandingan antara antrean Azure Service Bus dengan antrean Storage, lihat Antrean Storage dan antrean Azure Service Bus - dibandingkan dan dibedakan.
Topik
Anda juga dapat menggunakan topik untuk mengirim dan menerima pesan. Meskipun antrean sering digunakan untuk komunikasi titik-ke-titik, topik berguna dalam skenario terbitkan-berlangganan.
Topik dapat memiliki beberapa langganan independen, yang terlampir ke topik dan sebaliknya, yang berfungsi persis seperti antrean dari sisi penerima. Pelanggan topik dapat menerima salinan dari setiap pesan yang dikirim ke topik tersebut. Langganan diberi nama entitas. Secara default,langganan bersifat tahan lama, tetapi dapat dikonfigurasi untuk kedaluwarsa dan kemudian terhapus secara otomatis. Melalui Java Message Service (JMS) API, Azure Service Bus Premium juga memungkinkan Anda untuk membuat langganan volatil yang ada selama durasi koneksi.
Anda dapat menentukan aturan tentang langganan. Aturan langganan memiliki filter untuk menentukan kondisi agar pesan disalin ke dalam langganan dan tindakan opsional yang bisa mengubah metadata pesan. Untuk informasi selengkapnya, lihat filter dan tindakan topik. Fitur ini berguna dalam skenario berikut:
- Anda tidak ingin langganan menerima semua pesan yang dikirim ke sebuah topik.
- Anda ingin menandai pesan dengan metadata tambahan saat melewati langganan.
Catatan
Untuk informasi selengkapnya mengenai antrean dan topik, lihat Antrean, topik, dan langganan Azure Service Bus.
Namaspace
Namespace adalah kontainer untuk semua komponen olahpesan. Namespace dapat memiliki satu atau beberapa antrean dan topik dan sering berfungsi sebagai kontainer aplikasi.
Namespace dapat dibandingkan dengan server dalam terminologi broker lain, tetapi konsepnya tidak benar-benar sama. Namespace Service Bus adalah bagian kapasitas Anda sendiri dari klaster besar yang terdiri dari puluhan komputer virtual yang aktif. Ini secara opsional mencakup tiga zona ketersediaan Azure. Jadi, Anda mendapatkan semua manfaat ketersediaan dan ketahanan dari menjalankan broker pesan dalam skala besar. Selain itu, Anda tidak perlu khawatir tentang kompleksitas di balik itu semua. Microsoft Azure Service Bus adalah olahpesan tanpa server.
Fitur tingkat lanjut
Azure Service Bus juga memiliki fitur canggih yang memungkinkan Anda untuk memecahkan masalah pesan yang lebih kompleks. Bagian berikut menjelaskan fitur-fitur utama ini:
Sesi pesan
Untuk mewujudkan jaminan first-in, first-out (FIFO) dalam memproses pesan dalam antrean atau langganan Bus Layanan, gunakan sesi. Sesi juga dapat digunakan dalam menerapkan pola respons permintaan. Pola respons permintaan memungkinkan aplikasi pengirim mengirim permintaan dan menyediakan cara bagi penerima untuk mengirim respons kembali dengan benar ke aplikasi pengirim. Untuk informasi selengkapnya, lihat Sesi pesan.
Penerusan otomatis
Fitur Penerusan otomatis memungkinkan Anda untuk menautkan antrean atau langganan ke antrean atau topik lain yang merupakan bagian dari namespace yang sama. Saat penerusan otomatis diaktifkan, Azure Service Bus secara otomatis menghapus pesan yang ditempatkan di antrean atau langganan pertama (sumber) dan menempatkannya di antrean atau topik kedua (tujuan). Untuk informasi selengkapnya, lihat Menautkan entitas Bus Layanan dengan penerusan otomatis
Surat gagal
Bus Layanan antrean dan langganan topik menyediakan sub-antrean sekunder, yang disebut antrean surat mati (DLQ). Antrean surat mati menyimpan pesan yang tidak dapat dikirimkan ke penerima apa pun, atau pesan yang tidak dapat diproses. Anda kemudian dapat menghapus pesan dari DLQ dan memeriksanya. Aplikasi mungkin, dengan bantuan operator, memperbaiki masalah dan mengirim ulang pesan, mencatat fakta bahwa ada kesalahan, dan mengambil tindakan korektif. Untuk informasi selengkapnya, lihat Ringkasan antrean dead-letter Service Bus.
Pengiriman terjadwal
Anda dapat mengirimkan pesan ke antrean atau topik untuk pemrosesan yang tertunda. Misalnya, untuk menjadwalkan pekerjaan agar tersedia untuk diproses oleh sistem pada waktu tertentu. Untuk informasi selengkapnya, lihat Pesan terjadwal.
Penangguhan pesan
Ketika klien antrean atau langganan menerima pesan bahwa ia bersedia untuk memroses, tetapi pemrosesan tersebut saat ini tidak dimungkinkan karena keadaan khusus di dalam aplikasi, entitas dapat menangguhkan pengambilan pesan untuk kemudian hari. Pesan tetap dalam antrean atau langganan, tetapi disisihkan. Untuk informasi selengkapnya, Penangguhan Pesan.
Transaksi
Transaksi mengelompokkan dua operasi atau lebih menjadi satu cakupan eksekusi. Service Bus mendukung operasi pengelompokan terhadap satu entitas pesan (antrean, topik, langganan) dalam lingkup transaksi. Untuk informasi selengkapnya, lihat Ringkasan pemrosesan transaksi Service Bus.
Filter dan tindakan
Pelanggan dapat menentukan pesan mana yang ingin mereka terima dari sebuah topik. Pesan-pesan ini ditentukan dalam bentuk satu aturan langganan bernama atau lebih. Setiap aturan terdiri dari kondisi filter yang memilih pesan tertentu, dan secara opsional berisi tindakan yang membuat anotasi pesan yang dipilih. Untuk setiap kondisi aturan yang cocok, langganan menghasilkan salinan pesan, yang dapat diannotasi secara berbeda untuk setiap aturan yang cocok. Untuk informasi selengkapnya, lihat filter dan tindakan topik.
Hapus otomatis saat diam
Hapus otomatis saat diam memungkinkan Anda menentukan interval diam di mana antrean secara otomatis dihapus setelahnya. Interval diatur ulang ketika ada lalu lintas pada antrean. Durasi minimum adalah 5 menit.
Deteksi duplikat
Jika terjadi kesalahan yang menyebabkan klien memiliki keraguan tentang hasil operasi kirim, deteksi duplikat menghilangkan keraguan dari situasi ini dengan memungkinkan pengirim untuk mengirim ulang pesan yang sama, dan antrian atau topik membuang salinan duplikat. Untuk informasi selengkapnya, lihat Deteksi duplikat.
Penghapusan batch Pesan
Azure Bus Layanan mendukung penghapusan pesan dalam batch. Ini berguna dalam skenario ketika pesan dalam antrean atau langganan telah kedaluwarsa , atau tidak lagi relevan, mengharuskan pembersihan. Untuk informasi selengkapnya, lihat Penghapusan batch.
Keamanan
Bus Layanan mendukung protokol keamanan seperti Tanda Tangan Akses Bersama (SAS), Kontrol Akses Berbasis Peran (RBAC) (RBAC) dan Identitas terkelola untuk sumber daya Azure.
Azure Service Bus mendukung Advanced Message Queuing Protocol (AMQP) 1.0 standar dan protokol HTTP/REST.
Pemulihan bencana geografis
Saat wilayah atau pusat data Azure mengalami waktu henti, pemulihan bencana geo memungkinkan pemrosesan data untuk terus beroperasi di wilayah atau pusat data yang berbeda.
Catatan
Untuk informasi selengkapnya mengenai fitur ini, lihat Fitur tingkat lanjut dari Azure Service Bus.
Kepatuhan dengan standar dan protokol
Protokol kabel utama untuk Bus Layanan adalah Advanced Messaging Queuing Protocol (AMQP) 1.0, standar ISO/IEC terbuka. Protokol ini membuat pelanggan dapat menulis aplikasi yang bertentangan dengan Service Bus dan broker lokal seperti ActiveMQ atau RabbitMQ. Panduan protokol AMQP menyediakan informasi terperinci jika Anda ingin membuat abstraksi seperti itu.
Service Bus Premium sepenuhnya sejalan dengan Java/Jakarta EE Java Message Service (JMS) 2.0 API. Dan, Service Bus Standard mendukung subset JMS 1.1 yang berfokus pada antrean. JMS adalah abstraksi umum untuk broker pesan dan terintegrasi dengan banyak aplikasi dan kerangka kerja, termasuk kerangka kerja populer, Spring. Untuk beralih dari broker lain ke Azure Service Bus, Anda hanya perlu membuat ulang topologi antrean dan topik, dan mengubah dependensi dan konfigurasi penyedia klien. Sebagai contoh, lihat panduan migrasi ActiveMQ.
Pustaka klien
Pustaka klien Service Bus yang didukung penuh tersedia melalui Azure SDK.
- Azure Service Bus untuk .NET
- Kerangka kerja pihak ketiga yang menyediakan abstraksi tingkat yang lebih tinggi yang dibangun di atas SDK termasuk NServiceBus dan MassTransit.
- Pustaka Azure Service Bus untuk Java
- Penyedia Azure Service Bus untuk Java JMS 2.0
- Modul Azure Bus Layanan untuk JavaScript dan TypeScript
- Pustaka Azure Service Bus untuk Phyton
Protokol utama Azure Service Bus adalah AMQP 1.0 dan dapat digunakan dari klien protokol yang sesuai dengan AMQP 1.0. Beberapa klien AMQP sumber terbuka memiliki sampel yang secara eksplisit menunjukkan interoperabilitas Service Bus. Tinjau panduan protokol AMQP 1.0 untuk memahami cara menggunakan fitur-fitur Microsoft Azure Service Bus dengan klien AMQP 1.0 secara langsung.
Bahasa | Pustaka |
---|---|
Java | Apache Qpid Proton-J |
C/C++ | Azure uAMQP C, Apache Qpid Proton-C |
Python | Azure uAMQP untuk Python, Apache Qpid Proton Python) |
PHP | Azure uAMQP untuk PHP |
Ruby | Apache Qpid Proton Ruby |
Go | Azure Go AMQP, Apache Qpid Proton Go |
C#/F#/VB | AMQP .NET Lite, Apache NMS AMQP |
JavaScript/Simpul | Rhea |
Integrasi
Service Bus sepenuhnya terintegrasi dengan banyak layanan Microsoft dan Azure, misalnya:
Langkah berikutnya
Untuk mulai menggunakan olahpesan Service Bus, lihat artikel berikut ini: