在CentOS上搭建RabbitMQ集群需要以下几个步骤:
RabbitMQ是用Erlang编写的,因此首先需要在所有节点上安装Erlang。可以使用以下命令安装:
sudo yum install erlang
在所有节点上添加RabbitMQ官方仓库:
echo "[rabbitmq-server]
name=rabbitmq-server
baseurl=https://packagecloud.io/rabbitmq/rabbitmq-server/el/7/$basearch
repo_gpgcheck=1
gpgcheck=1
enabled=1
gpgkey=https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey" | sudo tee /etc/yum.repos.d/rabbitmq.repo
在所有节点上安装RabbitMQ服务器:
sudo yum install rabbitmq-server
在所有节点上启动RabbitMQ服务:
sudo systemctl start rabbitmq-server
在所有节点上设置RabbitMQ服务开机启动:
sudo systemctl enable rabbitmq-server
假设你有三个节点,分别为node1、node2和node3。首先在node1上创建一个管理用户:
sudo rabbitmqctl add_user admin your_password
sudo rabbitmqctl set_user_tags admin administrator
sudo rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
然后在node1上停止RabbitMQ服务:
sudo systemctl stop rabbitmq-server
接着在node2和node3上设置Erlang Cookie,使它们与node1相同。找到Erlang Cookie文件(通常位于/var/lib/rabbitmq/.erlang.cookie
),将其内容复制到node2和node3的相同路径下,并确保文件权限正确:
sudo scp /var/lib/rabbitmq/.erlang.cookie user@node2:/var/lib/rabbitmq/
sudo scp /var/lib/rabbitmq/.erlang.cookie user@node3:/var/lib/rabbitmq/
sudo chmod 400 /var/lib/rabbitmq/.erlang.cookie
在node2和node3上启动RabbitMQ服务:
sudo systemctl start rabbitmq-server
最后,在node1上将node2和node3加入集群:
sudo rabbitmqctl stop_app
sudo rabbitmqctl reset
sudo rabbitmqctl join_cluster rabbit@node1
sudo rabbitmqctl start_app
在node2和node3上执行以下命令:
sudo rabbitmqctl stop_app
sudo rabbitmqctl reset
sudo rabbitmqctl join_cluster rabbit@node1
sudo rabbitmqctl start_app
至此,RabbitMQ集群已经搭建完成。你可以使用rabbitmqctl cluster_status
命令查看集群状态。