在Debian系统上搭建RabbitMQ集群需要以下步骤:
首先,确保系统上安装了正确版本的Erlang。RabbitMQ需要Erlang来运行。
sudo apt-get update
sudo apt-get install erlang[26.1.1-1] erlang-asn1 erlang-crypto erlang-eldap erlang-ftp erlang-inets erlang-mnesia erlang-os-mon erlang-parsetools erlang-public-key erlang-runtime-tools erlang-snmp erlang-ssl erlang-syntax-tools erlang-tftp erlang-tools erlang-xmerl[26.1.1-1] -y
添加RabbitMQ的APT源并安装RabbitMQ服务器。
echo 'deb http://www.rabbitmq.com/debian/ testing main' | sudo tee /etc/apt/sources.list.d/rabbitmq.list
wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key add -
sudo apt update
sudo apt install rabbitmq-server[3.12.7-1]
sudo mkdir -p /data/rabbitmq/data
sudo mkdir -p /data/rabbitmq/logs
sudo chown rabbitmq:rabbitmq /data/ -R
sudo chmod 777 -R /data/rabbitmq
编辑 /etc/rabbitmq/rabbitmq-env.conf 文件,设置数据存储和日志存储路径。
sudo vim /etc/rabbitmq/rabbitmq-env.conf
内容如下:
RABBITMQ_MNESIA_BASE=/data/rabbitmq/data
RABBITMQ_LOG_BASE=/data/rabbitmq/logs
重启RabbitMQ服务:
sudo systemctl restart rabbitmq-server
查看当前节点的Erlang Cookie值:
cat /var/lib/rabbitmq/.erlang.cookie
将其他节点的Erlang Cookie值复制到当前节点:
scp /var/lib/rabbitmq/.erlang.cookie root@node2:/var/lib/rabbitmq/
scp /var/lib/rabbitmq/.erlang.cookie root@node3:/var/lib/rabbitmq/
在其他节点上执行以下命令,将mq-2、mq-3作为内存节点加入到mq-1节点集群中:
sudo rabbitmqctl stop_app
sudo rabbitmqctl reset
sudo rabbitmqctl join_cluster --ram rabbit@node1
sudo rabbitmqctl start_app
在任意节点上执行以下命令查看集群状态:
sudo rabbitmqctl cluster_status
为了提高集群的高可用性,可以配置镜像队列。
sudo rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
打开浏览器,输入任意节点的IP和端口(默认为15672),使用默认用户名和密码(guest/guest)登录RabbitMQ管理界面。
通过以上步骤,您可以在Debian系统上成功搭建一个RabbitMQ集群。请根据实际环境调整配置和版本号。