在Debian上搭建RabbitMQ集群涉及多個步驟,包括安裝Erlang、添加RabbitMQ倉庫、安裝RabbitMQ、配置集群等。以下是詳細的步驟:
首先,確保系統中已安裝Erlang,因為RabbitMQ是使用Erlang語言編寫的,它的運行需要依賴Erlang環境。
sudo apt-get update
sudo apt-get install -y erlang-nox
添加RabbitMQ官方倉庫的密鑰,然后更新系統源并安裝RabbitMQ。
curl -sLf "https://keys.openpgp.org/vks/v1/by-fingerprint/0A9AF2115F4687BD29803A206B73A36E6026DFCA" | sudo gpg --dearmor
sudo tee /usr/share/keyrings/com.rabbitmq.team.gpg /dev/null
echo "deb [signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] http://ppa.launchpad.net/rabbitmq/rabbitmq-erlang/ubuntu focal main" | sudo tee /etc/apt/sources.list.d/rabbitmq.list
echo "deb [signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] http://ppa.launchpad.net/rabbitmq/rabbitmq-server/ubuntu focal main" | sudo tee -a /etc/apt/sources.list.d/rabbitmq.list
sudo apt-get update
sudo apt-get install -y rabbitmq-server
啟動RabbitMQ服務并查看其狀態。
sudo systemctl start rabbitmq-server
sudo systemctl status rabbitmq-server
如果服務正常啟動,你應該能夠看到類似 Active: active (running) 的狀態信息。
啟用RabbitMQ管理插件(可選,但推薦)。
sudo rabbitmq-plugins enable rabbitmq_management
sudo systemctl restart rabbitmq-server
訪問管理界面,默認情況下,管理界面可以通過 http://服務器IP地址:15672 訪問,使用默認的用戶名和密碼登錄,用戶名是 guest,密碼也是 guest。
停止所有RabbitMQ服務
在每臺節點上執行以下命令:
sudo service rabbitmq-server stop
移除RabbitMQ配置記錄與存儲文件
位于 /var/lib/rabbitmq/mnesia、/var/lib/rabbitmq/nodes、/var/lib/rabbitmq/nodes.log 等。
sudo rm -rf /var/lib/rabbitmq/mnesia/*
sudo rm -rf /var/lib/rabbitmq/nodes/*
sudo rm -rf /var/lib/rabbitmq/nodes.log
按順序啟動所有機器
在每臺節點上執行以下命令:
sudo service rabbitmq-server start
建立集群
在任意一臺節點上執行以下命令(假設該節點為主節點):
sudo rabbitmqctl stop_app
sudo rabbitmqctl reset
sudo rabbitmqctl join_cluster rabbit@master
sudo rabbitmqctl start_app
其中 master 是主節點的名稱,其他節點使用相同的命令加入集群。
檢查集群狀態
在任意一臺節點上執行以下命令:
sudo rabbitmqctl cluster_status
輸出包含集群中的節點與運行中的節點,兼以主機名標志。
為了提高安全性,可以添加用戶并限制其權限,同時啟用管理插件。
sudo rabbitmqctl add_user admin administrators
sudo rabbitmqctl set_user_tags admin administrators
sudo rabbitmqctl set_permissions -p / admins
sudo rabbitmq-plugins enable rabbitmq_management
確保只開放必要的端口,例如RabbitMQ的默認端口5672和管理插件的15672端口。
sudo ufw allow 5672/tcp
sudo ufw allow 15672/tcp
sudo ufw reload
以上步驟應該可以幫助你在Debian系統上成功搭建RabbitMQ集群。