Clustering kết nối nhiều node RabbitMQ thành một broker logic duy nhất — cho khả năng mở rộng và (với replicated queue) high availability. Hiểu clustering và các sắc thái của nó là quan trọng để mở rộng và vận hành RabbitMQ đáng tin cậy.
Cluster là gì
Một RabbitMQ CLUSTER = nhiều node hoạt động như MỘT broker logic:
→ các node chia sẻ METADATA (định nghĩa queue/exchange, binding, user, vhost) qua cluster
→ client có thể kết nối đến bất kỳ node nào; tải được phân phối qua các node
→ mở rộng dung lượng connection/channel và phân phối tải
Queue trong một cluster (một sắc thái quan trọng)
⚠️ Mặc định, DỮ LIỆU của một queue sống trên MỘT node (node nơi nó được khai báo):
→ các node khác biết về queue (metadata) nhưng định tuyến đến node sở hữu
→ nếu node đó HỎNG → queue (và message của nó) KHÔNG KHẢ DỤNG
→ nên chỉ CLUSTERING KHÔNG làm cho queue có tính sẵn sàng cao!
→ cho HA → dùng REPLICATED queue (QUORUM QUEUE) sao chép dữ liệu qua các node
