Bagikan melalui


Cara mengintegrasikan MIcrosoft Azure Service Bus dengan RabbitMQ

Dalam panduan ini, kita akan mempelajari cara mengirim pesan dari RabbitMQ ke Azure Service Bus.

Berikut adalah beberapa skenario yang memungkinkan kita menggunakan kemampuan ini:

  • Penyiapan Edge: Kita memiliki pengaturan edge tempat kita mengirim pesan ke RabbitMQ, tetapi kita ingin meneruskan pesan tersebut ke Azure Service Bus untuk diproses lebih lanjut, sehingga kita dapat menggunakan sejumlah kemampuan Azure Big Data.
  • Hybrid Cloud: Perusahaan Anda baru saja mengakuisisi pihak ketiga yang menggunakan RabbitMQ untuk kebutuhan olah pesan mereka. Mereka berada di cloud yang berbeda. Saat mereka berpindah ke Azure, Anda sudah dapat mulai membagikan data dengan menyambungkan RabbitMQ dengan Azure Service Bus.
  • Integrasi Pihak Ketiga: Pihak ketiga menggunakan RabbitMQ sebagai broker dan ingin mengirim data mereka kepada kita, tetapi mereka berada di luar organisasi kita. Kita dapat memberi mereka SAS Key yang memberi mereka akses ke set antrean Azure Service Bus terbatas tempat mereka dapat meneruskan pesan mereka.

Ada banyak kasus, tetapi kita dapat memecahkan sebagian besar kasus penggunaan ini dengan menyambungkan RabbitMQ ke Azure.

Pertama, Anda perlu membuat akun Azure gratis dengan mendaftar di sini

Setelah masuk ke akun Anda, masuk ke portal Microsoft Azure dan buat namespace Azure Service Bus baru. Namespace adalah kontainer terkait tempat komponen olah pesan kita akan aktif, seperti antrean dan topik.

Menambahkan Namespace Azure Service Bus baru

Di portal Microsoft Azure, klik tombol plus besar untuk menambahkan sumber daya baru

Create resource

Lalu pilih Integrasi dan klik Azure Service Bus untuk membuat namespace olah pesan:

Select Azure Service bus

Anda akan diminta untuk memasukkan informasi namespace. Pilih langganan Azure uang ingin Anda gunakan. Jika tidak memiliki grup sumber daya yang sudah ada, Anda bisa membuat yang baru.

Create namespace

Gunakan rabbitmq untuk Namespace name, tapi ini dapat berupa apa pun yang Anda inginkan. Kemudian atur East US untuk lokasi. Pilih Basic sebagai tingkat harga.

Jika semua berjalan dengan baik, Anda akan melihat layar konfirmasi berikut:

Create namespace confirmation

Kemudian, kembali ke portal Microsoft Azure, Anda akan melihat namespace rabbitmq baru Anda tercantum di sana. Klik untuk mengakses sumber daya sehingga Anda dapat menambahkan antrean ke sumber daya tersebut.

Resource list with new namespace

Membuat Antrean Azure Service Bus kita

Setelah Anda memiliki namespace Azure Service Bus Anda, klik tombol Queues di sebelah kiri, di bawah Entities sehingga Anda dapat menambahkan antrean baru:

Create queue

Nama antrean adalah from-rabbitmq, seperti pengingat asal pesan tersebut. Anda dapat membiarkan semua opsi lainnya dalam default, tetapi Anda dapat mengubahnya agar sesuai dengan kebutuhan aplikasi Anda.

Mengaktifkan RabbitMQ Shovel Plugin

Untuk mengirim pesan dari RabbitMQ ke Azure Service Bus, kita akan menggunakan Shovel Plugin yang dikemas bersama RabbitMQ. Anda dapat mengaktifkan plugin dan antarmuka visualnya dengan perintah ini:

rabbitmq-plugins enable rabbitmq_shovel_management

Anda mungkin perlu menjalankan perintah tersebut sebagai root.

Sekarang saatnya untuk mendapatkan kredensial yang diperlukan untuk menyambungkan RabbitMQ ke Azure.

Menyambungkan RabbitMQ ke Azure Service Bus

Anda harus membuat Kebijakan Akses Bersama (SAS) untuk antrean Anda sehingga RabbitMQ dapat menerbitkan pesan ke dalamnya. Kebijakan SAS memungkinkan Anda menentukan pihak eksternal yang diizinkan untuk menggunakan sumber daya Anda. Intinya RabbitMQ dapat mengirim pesan, tetapi tidak mendengarkan atau mengelola antrean.

Add SAS Policy

Centang kotak Send lalu klik Create untuk menerapkan Kebijakan SAS kita.

Setelah kebijakan dibuat, klik untuk melihat String Koneksi Primer. Kita akan menggunakannya untuk mengizinkan RabbitMQ berinteraksi dengan Azure Service Bus:

Get SAS Policy

Sebelum dapat menggunakan string koneksi tersebut, Anda harus mengonversinya ke format koneksi AMQP RabbitMQ. Jadi buka alat pengonversi string koneksi dan tempel string koneksi Anda dalam formulir, klik konversi. Anda akan mendapatkan string koneksi siap RabbitMQ. (Situs web tersebut menjalankan semua yang lokal di browser Anda sehingga data Anda tidak dikirim melalui kabel). Anda dapat mengakses kode sumbernya di GitHub.

Convert connection string

Sekarang, buka plugin manajemen RabbitMQ di browser kita http://localhost:15672/#/dynamic-shovels dan buka Admin -> Shovel Management tempat Anda dapat menambahkan shovel baru yang akan menangani pengiriman pesan dari antrean RabbitMQ ke antrean Azure Service Bus Anda.

Add RabbitMQ Shovel

Di sini, panggil Shovel Anda azure dan pilih AMQP 0.9.1sebagai protokol sumber. Dalam cuplikan layar, kita memiliki amqp:// yang merupakan URI default yang menyambungkan kita ke server RabbitMQ lokal. Pastikan untuk menyesuaikannya dengan penyebaran Anda saat ini.

Di sisi antrean, Anda dapat menggunakan azure sebagai nama antrean Anda. Jika antrean tersebut tidak ada, RabbitMQ akan membuatnya untuk Anda. Anda juga dapat memilih nama antrean yang sudah ada. Anda dapat membiarkan opsi lain dalam default.

Kemudian di sisi destination hal-hal, pilih AMQP 1.0 sebagai protokol. Di kolom URI, masukkan string penghubung yang Anda dapatkan dari langkah sebelumnya tempat Anda mengonversi string koneksi Azure Anda ke format RabbitMQ. Harusnya akan terlihat seperti ini:

amqps://rabbitmq-shovel:StringOfRandomChars@rabbitmq.servicebus.windows.net:5671/?sasl=plain

Di kolom Address, kita akan memasukkan nama Antrean Azure Service Bus Anda, dalam hal ini, ini disebut from-rabbitmq. Klik Add Shovel, dan penyiapan Anda akan siap untuk mulai menerima pesan.

Menerbitkan Pesan dari RabbitMQ ke Azure Service Bus

Di antarmuka Manajemen RabbitMQ, kita dapat membuka Queues, memilih antrean azure, dan mencari panel Publish message. Formulir yang memungkinkan Anda menerbitkan pesan langsung ke antrean Anda akan ditampilkan. Sebagai contoh, kita hanya akan menambahkan first message sebagai Payload dan menekan Publish Message:

Publish first message

Kembali ke Azure dan periksa antrean Anda. Klik Service Bus Explorer di panel kiri, lalu klik tombol Peek. Jika semua berjalan lancar, Anda akan melihat antrean Anda sekarang memiliki satu pesan. Hore, selamat!

Azure Service Bus Queue

Tapi, mari kita pastikan pesan tersebut adalah pesan yang Anda kirim dari RabbitMQ. Pilih tab Peek dan klik tombol Peek untuk mengambil pesan terakhir dalam antrean Anda. Klik pada pesan untuk memeriksa isinya. Anda akan melihat sesuatu seperti gambar di bawah ini tempat first message Anda tercantum.

Queue peek

Mari Kita Rangkum

Selamat! Anda mencapai banyak hal! Anda berhasil mendapatkan pesan dari RabbitMQ ke Azure Service Bus, mari kita rangkum langkah-langkahnya:

  1. Buat Namespace Azure Service Bus
  2. Tambahkan antrean ke namespace
  3. Tambahkan Kebijakan SAS ke antrean Anda
  4. Dapatkan string koneksi antrean
  5. Aktifkan RabbitMQ shovel plugin & antarmuka manajemen
  6. Konversi string koneksi Azure Service Bus ke format AMQP RabbitMQ
  7. Tambahkan Shovel baru ke RabbitMQ & sambungkan ke Azure Service Bus
  8. Menerbitkan pesan

Dengan mengikuti langkah-langkah sebelumnya, Anda mengintegrasikan area organisasi Anda yang berada di luar Azure. Shovel plugin memungkinkan Anda untuk mengirim pesan dari RabbitMQ ke Azure Service Bus. Ini memiliki keuntungan besar karena Anda sekarang dapat mengizinkan pihak ketiga tepercaya untuk menyambungkan aplikasi mereka ke penyebaran Azure Anda.

Pada akhirnya, olah pesan adalah mengaktifkan koneksi, dan dengan teknik ini, kita baru saja membuka yang baru.

Langkah berikutnya