RabbitMQ 4.x dünyasında replicated HA queue tasarımı için quorum queue temel seçenektir; classic queue mirroring kaldırılmıştır. Quorum queue Raft tabanlı log yapısı nedeniyle disk IO ve node çoğunluğuna duyarlıdır.
RabbitMQ resmî dokümantasyonu replicated ve yüksek erişilebilir queue ihtiyacında quorum queue'ları modern varsayılan seçenek olarak önerir. Classic queue mirroring RabbitMQ 4.x ile kaldırılmıştır.
Publisher exchange'e mesaj yollar; routing sonucu queue'ya düşen mesaj quorum queue ise node'lar arasında Raft log ile çoğaltılır; consumer ack ile işleme tamamlanır.
Message/s tek başına yeterli değildir; mesaj boyutu, durability ve consumer hızı disk/network maliyetini değiştirir.
RabbitMQ dokümantasyonu quorum queue'ların veriyi diske persist ettiğini ve hızlı disklerin önerildiğini belirtir. Büyük mesajlarda throughput düşebilir.
Cluster, listener, memory ve queue durumunu rabbitmq-diagnostics/rabbitmqctl ile kontrol edin.
rabbitmq-diagnostics statusrabbitmq-diagnostics listenersrabbitmqctl cluster_statusrabbitmqctl list_queues name type messages_ready messages_unacknowledged consumersrabbitmqctl list_connections name state channelsQueue tipini ve client reconnect davranışını önceden doğrulayın; cluster eklemek tek başına uygulamayı HA yapmaz.
Raft consensus kullanan durable ve replicated RabbitMQ queue tipidir; data safety ve HA için tasarlanmıştır.
Classic queue mirroring özelliği 4.x ile kaldırılmıştır; replicated queue ihtiyacında quorum queue veya stream değerlendirilmelidir.
Zorunlu değildir fakat quorum queue ve stream gibi disk yoğun workload'larda düşük latency SSD/NVMe önemli avantaj sağlar.
Publish rate, ortalama mesaj boyutu, consumer sayısı ve durability ihtiyacını iletin; tek node veya quorum cluster topolojisini belirleyelim.