0
0
RabbitmqHow-ToBeginner · 3 min read

How to Create RabbitMQ Cluster: Step-by-Step Guide

To create a RabbitMQ cluster, install RabbitMQ on multiple servers, ensure they share the same Erlang cookie, and join nodes using rabbitmqctl join_cluster. This setup allows nodes to communicate and share queues for better reliability and load handling.
📐

Syntax

Creating a RabbitMQ cluster involves these main commands:

  • rabbitmqctl stop_app: Stops the RabbitMQ application on a node.
  • rabbitmqctl join_cluster [email protected]_node: Joins the current node to the cluster with the specified node.
  • rabbitmqctl start_app: Starts the RabbitMQ application after joining.

All nodes must share the same Erlang cookie file (.erlang.cookie) for authentication.

bash
rabbitmqctl stop_app
rabbitmqctl join_cluster [email protected]_node
rabbitmqctl start_app
💻

Example

This example shows how to create a cluster with two RabbitMQ nodes: rabbit1 and rabbit2.

1. Ensure both nodes have the same Erlang cookie by copying ~/.erlang.cookie from rabbit1 to rabbit2 and set permissions to 400.

2. On rabbit2, run commands to join the cluster:

bash
ssh rabbit2
sudo systemctl stop rabbitmq-server
rabbitmqctl stop_app
rabbitmqctl join_cluster [email protected]rabbit1
rabbitmqctl start_app
sudo systemctl start rabbitmq-server
Output
Stopping RabbitMQ application ... Clustering node with [email protected]rabbit1 ... Starting RabbitMQ application ...
⚠️

Common Pitfalls

Common mistakes when creating RabbitMQ clusters include:

  • Different Erlang cookie files on nodes cause authentication failure.
  • Not stopping the RabbitMQ application before joining the cluster.
  • Using incorrect node names or hostnames in the join_cluster command.
  • Firewall or network issues blocking communication between nodes.

Always verify node names with rabbitmqctl status and ensure network connectivity.

bash
rabbitmqctl join_cluster [email protected]wronghostname
# Wrong hostname causes failure

# Correct approach:
rabbitmqctl stop_app
rabbitmqctl join_cluster [email protected]correcthostname
rabbitmqctl start_app
📊

Quick Reference

Summary tips for RabbitMQ clustering:

  • Use consistent Erlang cookie on all nodes.
  • Stop RabbitMQ app before joining cluster.
  • Use full node names with hostname in commands.
  • Check network/firewall settings to allow node communication.
  • Verify cluster status with rabbitmqctl cluster_status.

Key Takeaways

All RabbitMQ nodes must share the same Erlang cookie for clustering.
Stop the RabbitMQ application before joining a node to the cluster.
Use the full node name with hostname in the join_cluster command.
Check network connectivity and firewall rules between nodes.
Verify cluster status with rabbitmqctl cluster_status after setup.