在CentOS上搭建RabbitMQ集群需要以下幾個步驟:
RabbitMQ是用Erlang編寫的,因此首先需要在所有節點上安裝Erlang??梢允褂靡韵旅畎惭b:
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命令查看集群狀態。