在Debian系统上安装和配置RabbitMQ的步骤如下:
首先,确保系统中已安装Erlang,因为RabbitMQ是使用Erlang语言编写的,它的运行需要依赖Erlang环境。对于基于Debian的系统,可以使用以下命令安装Erlang:
sudo apt-get update
sudo apt-get install -y erlang-nox
接下来,安装RabbitMQ服务器。可以通过添加官方存储库来安装最新版本的RabbitMQ:
curl -1sLf "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
注意:这里的 focal
是Ubuntu的版本代号,如果你的系统是其他版本,请相应地进行替换。
sudo apt-get update
sudo apt-get install -y rabbitmq-server
sudo systemctl start rabbitmq-server
sudo systemctl status rabbitmq-server
如果服务正常启动,你应该能够看到类似 Active: active (running)
的状态信息。
sudo rabbitmq-plugins enable rabbitmq_management
这个插件提供了一个基于Web的管理界面,可以方便地管理RabbitMQ服务器。重启RabbitMQ服务以使插件生效:
sudo systemctl restart rabbitmq-server
默认情况下,管理界面可以通过 http://服务器IP地址:15672
访问。使用默认的用户名和密码登录,用户名是 guest
,密码也是 guest
。请注意,在生产环境中,应该及时修改默认的用户名和密码以提高安全性。
在每个RabbitMQ服务器上设置相同的Erlang Cookie,以确保节点可以相互通信。通常在 /var/lib/rabbitmq/.erlang.cookie
文件中设置。
echo "cookie_value" | sudo tee /var/lib/rabbitmq/.erlang.cookie
sudo chmod 400 /var/lib/rabbitmq/.erlang.cookie
sudo chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie
在每个服务器上启动RabbitMQ服务。
sudo systemctl start rabbitmq-server
使用 rabbitmqctl
命令行工具将节点加入集群。例如:
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@node1
rabbitmqctl start_app
为了确保消息的高可用性,可以设置队列镜像。这样,队列的消息会在多个节点上进行复制。例如:
sudo rabbitmqctl set_policy ha-all "^my_queue$" '{"ha-mode":"all","ha-sync-mode":"automatic"}'