Broker & Node #

Untuk memahami RabbitMQ secara serius, kita harus berhenti melihatnya hanya sebagai “queue”.

RabbitMQ adalah broker.

Dan broker berjalan di atas node.

Memahami perbedaan dan hubungan antara broker dan node adalah fondasi untuk memahami clustering, durability, dan fault tolerance di tahap selanjutnya.

“Jika message adalah darah dalam sistem terdistribusi, maka broker adalah jantungnya.”

Apa Itu Broker? #

Dalam konteks messaging, broker adalah komponen yang:

  • Menerima pesan dari producer
  • Melakukan routing pesan
  • Menyimpan pesan di queue
  • Mengirim pesan ke consumer

Broker adalah pusat kontrol komunikasi.

Dalam RabbitMQ, broker bertanggung jawab atas:

  • Exchange
  • Queue
  • Binding
  • Connection management
  • Flow control
  • Acknowledgement tracking

Broker adalah “otak” sistem messaging.


Apa Itu Node? #

Node adalah instance runtime RabbitMQ yang berjalan pada sebuah mesin (server atau container).

Satu node berarti:

  • Satu proses RabbitMQ
  • Satu instance Erlang VM
  • Satu sistem penyimpanan internal

Node bisa berdiri sendiri (single node) atau bergabung dalam cluster.


Hubungan Broker dan Node #

Sering terjadi kebingungan antara broker dan node.

Secara praktis:

  • Satu node menjalankan satu broker
  • Cluster terdiri dari beberapa node
  • Broker dapat tersebar secara logis di beberapa node (tergantung konfigurasi queue)

1. Diagram Single Node Broker #

+-------------------------+
|        Node 1           |
|  ---------------------  |
|  |     Broker        |  |
|  |  Exchange         |  |
|  |  Queue            |  |
|  ---------------------  |
+-------------------------+

Dalam konfigurasi sederhana, satu node = satu broker.


2. Diagram Cluster Multi-Node #

+-----------+     +-----------+     +-----------+
|  Node 1   |     |  Node 2   |     |  Node 3   |
|  Broker   |<--->|  Broker   |<--->|  Broker   |
+-----------+     +-----------+     +-----------+

Node-node saling berkomunikasi menggunakan protokol internal Erlang.

Metadata dibagikan antar node.


Apa yang Disimpan di Node? #

Node menyimpan beberapa hal penting:

  • Metadata (exchange, queue, binding)
  • State koneksi
  • Message (tergantung tipe queue)
  • Persistent data di disk

Dalam cluster:

  • Metadata direplikasi ke semua node
  • Data queue bisa berada di node tertentu
  • Untuk quorum queue, data direplikasi ke beberapa node

Ini penting untuk memahami fault tolerance.


Single Node vs Multi Node #

Single Node #

Kelebihan:

  • Sederhana
  • Mudah dioperasikan
  • Cocok untuk development

Kekurangan:

  • Single point of failure
  • Tidak ada high availability

Multi Node (Cluster) #

Kelebihan:

  • High availability
  • Fault tolerance lebih baik
  • Distribusi beban

Kekurangan:

  • Kompleksitas operasional meningkat
  • Butuh manajemen jaringan dan sinkronisasi

Peran Erlang VM dalam Node #

RabbitMQ dibangun di atas Erlang/OTP.

Implikasinya:

  • Lightweight process model
  • Supervisory tree
  • Fault isolation antar proses
  • Distributed node communication

Erlang memungkinkan node RabbitMQ berkomunikasi secara efisien dalam cluster.

Ini bukan sekadar detail implementasi.

Ini adalah alasan mengapa RabbitMQ kuat dalam concurrency.


Konsekuensi Arsitektural #

Memahami broker dan node membawa beberapa implikasi penting:

Jangan Menganggap Broker Stateless #

Broker menyimpan state queue dan metadata.

Ia bukan sekadar proxy.


Perencanaan Storage Penting #

Disk I/O memengaruhi performa.

Durable message memerlukan sinkronisasi ke disk.


Desain Cluster Harus Disengaja #

Cluster bukan hanya “tambah node”.

Harus mempertimbangkan:

  • Topologi jaringan
  • Latency antar node
  • Replication strategy

Ringkasan #

KonsepPenjelasan
BrokerPengelola messaging (exchange, queue, routing)
NodeInstance RabbitMQ yang menjalankan broker
ClusterSekumpulan node yang bekerja bersama
MetadataDireplikasi antar node
Message storageTergantung tipe queue

Penutup #

RabbitMQ bukan hanya tentang publish dan consume.

Ia adalah sistem terdistribusi yang berjalan di atas node-node yang saling terhubung.

Memahami broker dan node adalah fondasi sebelum masuk ke topik:

  • Cluster
  • Quorum queue
  • High availability
  • Fault tolerance

Tanpa memahami struktur ini, desain production RabbitMQ akan mudah salah arah.

About | Author | Content Scope | Editorial Policy | Privacy Policy | Disclaimer | Contact