Clustering συνδέει πολλαπλούς κόμβους RabbitMQ σε έναν ενιαίο λογικό broker — για κλιμάκωση και (με αντιγραμμένες ουρές) υψηλή διαθεσιμότητα. Η κατανόηση της ομαδοποίησης και των λεπτομερειών της είναι σημαντική για την κλιμάκωση και τη αξιόπιστη λειτουργία του RabbitMQ.
Τι είναι ένα cluster
A RabbitMQ CLUSTER = multiple nodes acting as ONE logical broker:
→ nodes share METADATA (queue/exchange definitions, bindings, users, vhosts) across the cluster
→ clients can connect to any node; load is distributed across nodes
→ scales connection/channel capacity and distributes load
Ουρές σε ένα cluster (μια σημαντική λεπτομέρεια)
⚠️ By default, a queue's DATA lives on ONE node (the node where it was declared):
→ other nodes know about the queue (metadata) but route to the owning node
→ if that node FAILS → the queue (and its messages) is UNAVAILABLE
→ so CLUSTERING ALONE does NOT make queues highly available!
→ for HA → use REPLICATED queues (QUORUM QUEUES) that replicate data across nodes
