Mengirim dan Menerima Pesan dengan Node.js + RabbitMQ

Nodejs RabbitMQ Lanjutan dari tulisan saya yang kemarin Instal dan konfigurasi RabbitMQ Message Broker, saya akan menjelaskan bagaimana menerapkan nya dengan node.js memakai metode Async / Await. Di Node.js sendiri ada 2 konsep yaitu Asynchronous dan Synchronous, seperti biasa saya analogikan saja yaa biar mudah di pahami hehe… Jadi Asynchronous itu seperti pelayan di sebuah restaurant dan ada 2 pelanggan yaitu pelanggan A dan B, pertama pelayan melayani pelanggan A, lalu menyerahkan pesanan ke dapur. Sambil menunggu pesanan A di masak pelayan bisa lanjut melayani pelanggan B dan menyerahkan pesanan ke dapur, sedangkan jika kita pakai metode Synchronous saat pelayan melayani pelanggan A dan menyerahkan pesanan ke dapur, pelayan harus menunggu sampai proses memasak selesai sampai dihidangkan ke pelanggan A baru kemudian pelayan lanjut melayani pelanggan B. Jadi saaa sendiri lebih suka konsep asynchronous karena kita tidak perlu menunggu suatu perintah sampai selesai karena menunggu adalah hal yang paling menyebalkan apalagi menunggu kepastian *HALAHHH*

Oke mungkin segitu dulu basa – basi nya kita lanjut ke coding, yuk!

Langkah 1: Instal Library amqp

Kita butuh library untuk mengirim pesan pada rabbitmq di node.js dengan menggunakan amqplib.

Instal menggunakan npm

$ npm i amqplib

Langkah 2: Buat Producer

Kita buat file baru dengan nama send.js, disini saya menggunakan json sebagai payload pesan nya agar lebih fleksibel untuk digunakan dalam sekali pengiriman pesan

Langkah 3: Buat Consumer

Setelah selesai membuat untuk pengirim pesan, kemudian kita buat untuk penerima pesan.

buat file baru dengan nama receive.js

Langkah 4: Eksekusi

Setelah selesai membuat pengirim dan penerima pesan kita jalankan script penerima pesan terlebih dahulu

$ node receive.js 
Listening for messages...

Lalu jalankan script pengirim pesan

$ node send.js "Hai"
[x] Sent: Hai

Akan muncul pesan baru pada receive.js yang kita jalankan tadi

Listening for messages...
nama-antrian:'{"message":"Hai"}'

Tambahan

Untuk melihat daftar antrian kamu bisa lakukan perintah berikut di terminal linux

$ sudo rabbitmqctl list_queues

atau di command prompt windows

> rabbitmqctl.bat list_queues

Atau bisa membuka url di bawah ini jika via web gui http://{hostname}:15672/#/queues

dah gitu aja, see ya~