Mengenal lebih jauh dengan RabbitMQ: Tahap Instalasi, Komponen Dasar, dan Simulasi - Perwira Learning Center


1. Latar Belakang

    Hai semuanya. Pada hari ini kita akan belajar lebih dalam lagi mengenai salah satu aplikasi perantara (message broker) yang identik dengan penamaannya, yaitu RabbitMQ. Kali ini, kita tidak hanya akan membahas konsep dasarnya saja, namun kita juga akan menggali tentang komponen-komponen dasar di dalam RabbitMQ, bagaimana cara menginstallnya dengan langkah yang lengkap, dan pembahasan menjerumus lainnya yang akan kita tutup dengan praktik sederhana penggunaan RabbitMQ.

2. Alat dan Bahan

2.1 Perangkat Lunak
- Sistem Operasi Linux Ubuntu
- Terminal
- Visual Studio Code
- RabbitMQ Server
- Postman Desktop
- Package amqplib, express
- Node.js

2.2 Perangkat Keras
- Laptop / PC
- Koneksi Internet

3. Pembahasan

3.1 Apa itu RabbitMQ

    RabbitMQ adalah aplikasi perantara (message broker) yang berfungsi sebagai perantara dalam pengiriman pesan antar satu aplikasi dengan yang lainnya menggunakan sistem antrean (queue).

3.2 Mengapa menggunakan RabbitMQ

  • Dapat mengurangi beban server utama
  • Mendukung pemrosesan asynchronous (tidak harus menunggu suatu proses selesai untuk melanjutkan tugas lain)
  • Memisahkan antar layanan (tidak saling bergantung atau loose coupling)

3.3 Kapan dan Dimana RabbitMQ digunakan

    Dalam sebuah aplikasi, apabila suatu sistem dapat di eksekusi secara bersamaan oleh banyak user, terdapat kemungkinan besar aplikasi tersebut akan mengalami penurunan performa secara drastis dikarenakan banyaknya permintaan yang terjadi dalam satu waktu. Disaat inilah peran RabbitMQ menyelamatkan masalah tersebut dengan menjadi tempat penampung sementara permintaan-permintaan yang tertunda. RabbitMQ sendiri umumnya dapat dijalankan di localhost.

3.4 Bagaimana Arsitektur RabbitMQ

  1. Producer → Pengirim pesan
  2. Exchange → Pengatur distribusi pesan
  3. Queue → Tempat penyimpanan pesan
  4. Binding → Penghubung exchange dengan queue
  5. Routing Key → Penentu jalur pesan
  6. Consumer → Penerima dan pemroses pesan
Jadi, alurnya adalah : 

Producer mengirim pesan ke Exchange → Exchange mendistribusikan ke Queue → Consumer mengambil dan memproses pesan.

3.5 Komponen Dasar RabbitMQ

1. Producer
Aplikasi yang mengirimkan pesan ke RabbitMQ.
2. Consumer
Aplikasi yang menerima dan memproses pesan dari queue.
3. Queue
Tempat penyimpanan pesan sebelum diproses.
4. Exchange
Komponen yang menentukan bagaimana pesan di distribusikan ke queue. Jika dibahas lebih dalam, terdapat 4 jenis exchange yang bisa kita temukan :
- Direct: Kirim ke tujuan spesifik
- Fanout: Kirim ke semua queue
- Topic: Kirim berdasarkan pola routing key tertentu
- Headers: Kirim berdasarkan header
5. Acknowledgement (ACK)
Tanda bahwa pesan berhasil diproses.
6. Durability
Memastikan pesan tetap tersimpan meski server di restart.
7. Dead Letter Queue
Menyimpan pesan yang gagal diproses.

Contoh exchange direct dan fanout itu gimana? Jadi gini, misalkan producer kirim pesan :

Routing Key: "error"
Body: "Database connection failed"

Routing Key: "info"
Body: "User login success"

Maka queue bindingnya :

- queue_error -> error
- queue_info -> info

Hasilnya :

- Pesan "error" hanya masuk ke queue_error
- Pesan "info" hanya masuk ke queue_info

3.6 Instalasi RabbitMQ

1. Buka terminal, pastikan posisimu ada di ~ atau home

2. Update sudo untuk memperbarui daftar informasi paket (opsional, tetapi disarankan)

3. Install server RabbitMQ 

3.7 Simulasi Sederhana : "Sistem Pemrosesan Data Background"

- Konsep Simulasi : 
Producer kirim request ke API → API kirim job ke RabbitMQ → Consumer memproses job →Hasil ditampilkan di terminal

- Langkah :
1. Buat directory baru

2. Install dependensi dan buka Visual Studio Code. Express untuk buat API server dan amqplib adalah library RabbitMQ client di node.js

3. Buat file producer.js dan isi dengan kode berikut

4. Buat file consumer.js dan isi dengan kode berikut

5. Buka terminal, jalankan server RabbitMQ

6. Jalankan kedua file producer.js dan consumer.js dengan node

7. Untuk testing, buka postman dengan URL http://localhost:3000/process


8. Isi body dengan data number, klik send
9. Dan data akan muncul di terminal Visual Studio Code
    Apa yang terjadi? Data number 5 itu dikirim ke RabbitMQ lewat sendToQueue dan express tidak langsung memproses angkanya, tetapi mengirimkan response seperti yang bisa kita lihat di postman. Semua proses ini disebut sebagai asynchronous atau asinkron karena server tidak menunggu hasil worker / consumer sampai selesai.

4. Daftar Pustaka

Rumah Web. (2024).  Apa itu RabbitMQ. Diakses dari: https://www.rumahweb.com/journal/rabbitmq-adalah/#Apa_Itu_RabbitMQ

Scale Grid. (2024). Most Common RabbitMQ Use Cases. Diakses dari : https://scalegrid.io/blog/rabbitmq-use-cases/

Medium. (2025). RabbitMQ vs Kafka: A Practical Guide. Diakses dari: https://medium.com/@taycode/rabbitmq-vs-kafka-a-practical-guide-61b82c096cf7






Post a Comment

0 Comments