RabbitMQ在Debian上的插件使用指南
RabbitMQ是基于Erlang开发的消息队列服务,因此在Debian上使用前需先安装Erlang环境。可通过以下命令安装Erlang(以Debian 11为例):
sudo apt-get update
sudo apt-get install -y erlang-nox
随后添加RabbitMQ官方仓库并安装RabbitMQ Server(需替换focal为你的Debian版本代号,如bookworm):
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-server/ubuntu focal main" | sudo tee /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 enable rabbitmq-server
RabbitMQ提供rabbitmq-plugins命令行工具管理插件,核心操作如下:
sudo rabbitmq-plugins list
输出中,带[√]标记的插件为启用状态,未标记的为禁用状态。sudo rabbitmq-plugins enable <插件名称>
例如启用管理插件(用于Web界面管理):sudo rabbitmq-plugins enable rabbitmq_management
sudo rabbitmq-plugins disable <插件名称>
例如禁用管理插件:sudo rabbitmq-plugins disable rabbitmq_management
sudo systemctl restart rabbitmq-server
管理插件提供基于Web的图形化管理界面,是日常运维的常用工具。
sudo rabbitmq-plugins enable rabbitmq_management
sudo systemctl restart rabbitmq-server
http://<服务器IP>:15672,使用默认账号guest/guest登录(生产环境需修改默认密码)。该插件支持消息延迟投递,适用于定时任务、超时处理等场景。
rabbitmq_delayed_message_exchange-3.11.0.ez),需匹配RabbitMQ Server版本。/usr/lib/rabbitmq/lib/rabbitmq_server-<版本>/plugins/):sudo mv rabbitmq_delayed_message_exchange-3.11.0.ez /usr/lib/rabbitmq/lib/rabbitmq_server-3.11.0/plugins/
sudo rabbitmq-plugins enable rabbitmq_delayed_message_exchange
sudo systemctl restart rabbitmq-server
rabbitmqadmin工具创建延迟交换机和队列,发送延迟消息(具体命令参考RabbitMQ官方文档)。镜像队列可实现队列数据在多个节点间的同步,提高高可用性。
sudo rabbitmq-plugins enable rabbitmq_mirroring
sudo systemctl restart rabbitmq-server
rabbitmqctl命令设置队列镜像规则,例如将所有队列镜像到所有节点:rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
此命令会将所有以^开头的队列(即所有队列)设置为镜像队列,确保每个节点都有队列副本。guest账号,创建专用用户并分配最小权限;修改默认访问端口(15672),配置防火墙规则限制访问来源。socat),可通过sudo apt-get install socat安装缺失的依赖。