在Ubuntu上搭建RabbitMQ集群需要以下几个步骤:
首先,确保你的Ubuntu系统是最新的,并且已经安装了必要的依赖项。
sudo apt update
sudo apt upgrade -y
sudo apt install rabbitmq-server -y
安装完成后,启动RabbitMQ服务并设置开机自启动。
sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server
RabbitMQ集群中的所有节点必须共享相同的Erlang cookie。你可以在第一个节点上找到这个cookie,并将其复制到其他节点。
在第一个节点上找到cookie文件:
sudo cat /var/lib/rabbitmq/.erlang.cookie
将cookie内容复制到剪贴板,然后在其他节点上执行以下命令:
sudo tee /var/lib/rabbitmq/.erlang.cookie <<< "YOUR_COOKIE_CONTENT"
sudo chmod 400 /var/lib/rabbitmq/.erlang.cookie
假设你有两个节点,分别是node1和node2。
node1):编辑RabbitMQ配置文件 /etc/rabbitmq/rabbitmq.conf,添加以下内容:
cluster_formation.peer_discovery_backend = rabbit_peer_discovery_classic_config
cluster_formation.classic_config.nodes.1 = rabbit@node1
cluster_formation.classic_config.nodes.2 = rabbit@node2
重启RabbitMQ服务:
sudo systemctl restart rabbitmq-server
node2):编辑RabbitMQ配置文件 /etc/rabbitmq/rabbitmq.conf,添加以下内容:
cluster_formation.peer_discovery_backend = rabbit_peer_discovery_classic_config
cluster_formation.classic_config.nodes.1 = rabbit@node1
cluster_formation.classic_config.nodes.2 = rabbit@node2
重启RabbitMQ服务:
sudo systemctl restart rabbitmq-server
在任意一个节点上,使用以下命令检查集群状态:
sudo rabbitmqctl cluster_status
你应该能看到集群中所有节点的状态。
为了提高消息的可靠性,你可以配置镜像队列,使得消息在多个节点上进行复制。
在任意一个节点上,使用以下命令启用镜像队列:
sudo rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
这个命令会将所有队列设置为镜像队列,并在所有节点上进行复制。
确保你的防火墙允许RabbitMQ的默认端口(5672)通信。
sudo ufw allow 5672/tcp
通过以上步骤,你可以在Ubuntu上成功搭建一个RabbitMQ集群。确保所有节点的Erlang cookie相同,并且正确配置了集群和镜像队列,以提高系统的可靠性和性能。