RabbitMQ HA in Xray using Quorum Queues
Xray uses RabbitMQ Quorum Queues (mandatory for v4.x). Replaces Classic Queue mirroring. 3-node cluster recommended for HA.
RabbitMQ in Xray
RabbitMQ is a critical component of the Xray architecture, serving as a message bus to facilitate communication between various application services. The entire scanning flow is broken down into various phases (like index, persist, analysis, etc), which reside in different services. Different queues in RabbitMQ serve as channels to facilitate communication between them and ensure end-to-end processing.
Classic Queues vs. Quorum Queues
Before version 3.124.x, Xray used Classic Queues (with mirroring). Classic Queues are a basic FIFO queue type with inherent design limitations that make them less reliable. Quorum Queues are a modern, more dependable RabbitMQ queue type designed to replace Classic Mirrored Queues. They provide a durable, replicated FIFO queue built on the Raft consensus algorithm. For more information, see the RabbitMQ documentation.
Deprecation and Migration
The RabbitMQ team deprecated support for Classic Mirrored Queues starting with version 4.0 and ceased community support for earlier versions. Consequently, Xray will no longer support Classic Queues and will transition entirely to Quorum Queues. Enabling Quorum Queues is a mandatory requirement to upgrade RabbitMQ to version 4.
Enabling Quorum Queues is a mandatory requirement to upgrade RabbitMQ to version 4.
Updated 24 days ago
