在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集群。