This is a guide for installing Xray and RabbitMQ on separate nodes and connecting multiple Xray nodes to a RabbitMQ cluster (sequentially) to achieve high availability.
The setup supports native (rpm, deb), Linux archive, and docker-compose-based installation. This document uses three nodes for the application, RabbitMQ, and one Xray database node for demonstration purposes.
Benefits
Improved Scalability with Dedicated Resources:
Separating RabbitMQ allows for dedicated resource allocation (CPU, memory, and I/O), enabling it to scale independently from the application services.
Reduced Resource Contention:
When RabbitMQ and application services share the same resources, they compete for CPU, memory, and network bandwidth. Separating them eliminates this contention, ensuring more consistent and reliable performance.
Simplified Troubleshooting:A clear separation between RabbitMQ and the application makes identifying and resolving issues easier, whether they stem from RabbitMQ or the application itself.
Prerequisites
JFrog Installer Compatiility
Ensure you use the installer for the latest Xray version, which supports deploying Xray and RabbitMQ on separate nodes. Version Support for this deployment model is as follows.
Xray Installer | Version |
---|---|
RPM | 3.97.8 and 3.107.18 onwards |
Debian | 3.111.0 onwards |
Linux Archive | 3.111.0 onwards |
Docker Compose | 3.111.0 onwards |
Hardware Requirements
We recommend installing Rabbit MQ on at least three nodes in this deployment model. The table below lists the minimum hardware requirements for the servers. For a detailed description of the requirements, please refer to Xray System Requirements and Platform Support.
Node Type | CPU | RAM (GB) | Disk Size (GB) |
---|---|---|---|
Xray Node | 6 | 12 | 250 |
RabbitMQ Node | 4 | 8 | 250 |
PostgreSQL
JFrog Xray requires PostgreSQL as its database. You could use a managed solution or a native installation. If you prefer the latter, we recommend using a separate standalone server for the database. For more details, refer to the following document: PostgreSQL for Xray.
Artifactory
Ensure Artifactory is operational on a separate, fully configured node.