0
0
RabbitmqHow-ToBeginner · 4 min read

How to Add a Node to a RabbitMQ Cluster Quickly

To add a node to a RabbitMQ cluster, first stop the RabbitMQ application on the new node with rabbitmqctl stop_app, then join it to the cluster using rabbitmqctl join_cluster [email protected] where rabbit@hostname is an existing cluster node. Finally, start the application on the new node with rabbitmqctl start_app.
📐

Syntax

These are the main commands to add a node to a RabbitMQ cluster:

  • rabbitmqctl stop_app: Stops the RabbitMQ application on the new node to prepare for clustering.
  • rabbitmqctl join_cluster [email protected]: Joins the new node to the cluster by specifying an existing node's name.
  • rabbitmqctl start_app: Starts the RabbitMQ application on the new node after joining the cluster.
bash
rabbitmqctl stop_app
rabbitmqctl join_cluster [email protected]
rabbitmqctl start_app
💻

Example

This example shows how to add a node named rabbit@node2 to a cluster where rabbit@node1 is already a member.

bash
sudo rabbitmqctl stop_app
sudo rabbitmqctl join_cluster [email protected]
sudo rabbitmqctl start_app
sudo rabbitmqctl cluster_status
Output
Stopping node rabbit@node2 ... Node rabbit@node2 stopped Clustering node rabbit@node2 with rabbit@node1 ... Node rabbit@node2 joined cluster Starting node rabbit@node2 ... Node rabbit@node2 started Cluster status of node rabbit@node2 ... Cluster status: [{nodes,[{disc,[rabbit@node1,rabbit@node2]}]}]
⚠️

Common Pitfalls

Common mistakes when adding a node to a RabbitMQ cluster include:

  • Not stopping the RabbitMQ application on the new node before joining the cluster.
  • Using the wrong node name or hostname in the join_cluster command.
  • Network issues preventing nodes from communicating.
  • Not ensuring the same Erlang cookie is set on all nodes, which is required for clustering.

Always verify the Erlang cookie file .erlang.cookie is identical on all nodes and has correct permissions.

bash
### Wrong way (missing stop_app):
rabbitmqctl join_cluster [email protected]

### Right way:
rabbitmqctl stop_app
rabbitmqctl join_cluster [email protected]
rabbitmqctl start_app
📊

Quick Reference

CommandPurpose
rabbitmqctl stop_appStop RabbitMQ on the new node before clustering
rabbitmqctl join_cluster [email protected]Join the new node to the cluster
rabbitmqctl start_appStart RabbitMQ on the new node after joining
rabbitmqctl cluster_statusCheck the cluster status on any node

Key Takeaways

Stop the RabbitMQ app on the new node before joining the cluster.
Use the exact node name of an existing cluster member in the join command.
Ensure all nodes share the same Erlang cookie for authentication.
Start the RabbitMQ app on the new node after joining the cluster.
Verify cluster status to confirm the node joined successfully.