RabbitMQ是一个免费开源的消息代理(Message Broker)。支持多种消息协议,RabbitMQ是互联网上使用最广泛的消息代理。它支持AMQP、STOMP、MQTT、HTTP、WebSockets以及RabbitMQ Stream等协议。RabbitMQ完全符合JMS 1.1标准,适用于从小型到大型部署环境的各种开发场景。

作为消息代理,RabbitMQ位于应用程序之间,允许它们以异步、可靠和便捷的方式相互通信。它还在应用程序之间提供临时存储,防止数据丢失。

在本指南中,你将学习如何在Ubuntu 24.04服务器上安装RabbitMQ服务器。你还将学习如何启用RabbitMQ插件、设置RabbitMQ管理员用户,然后通过Web浏览器访问RabbitMQ管理面板。

前提条件

要完成本指南,请确保你具备以下条件:

- 一台Ubuntu 24.04服务器

- 一个具有管理员权限的非root用户

方法一:通过Ubuntu仓库安装RabbitMQ服务器

默认情况下,Ubuntu仓库提供了RabbitMQ服务器软件包,你可以通过APT安装。如果你倾向于使用最简单、最干净的系统(无需添加第三方仓库)来安装RabbitMQ,可以通过Ubuntu仓库进行安装。

首先,运行以下命令更新Ubuntu软件包索引到最新版本。

sudo apt update

更新软件包索引

现在使用下面的apt install命令安装rabbitmq-server软件包。输入Y确认安装。

sudo apt install rabbitmq-server

安装RabbitMQ服务器

安装完成后,使用以下命令检查rabbitmq-server服务。你会看到RabbitMQ服务器已启用并正在运行。

sudo systemctl is-enabled rabbitmq-server
sudo systemctl status rabbitmq-server

检查服务状态

最后,你还可以通过以下命令验证RabbitMQ服务器使用的端口:

ss -tulpn

检查RabbitMQ端口

你可以看到端口5672被beam服务使用。

方法二:通过Cloudsmith镜像安装RabbitMQ服务器

如果你需要获取最新版本的RabbitMQ服务器,可以使用Cloudsmith镜像提供的第三方仓库来安装RabbitMQ服务器。在本节中,你将添加Cloudsmith镜像仓库,然后从中安装RabbitMQ服务器。

执行以下命令添加RabbitMQ服务器软件包的Cloudsmith镜像。这将自动添加RabbitMQ的GPG密钥和仓库。

curl -1sLf 'https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/setup.deb.sh' | sudo -E bash

添加Cloudsmith仓库

过程完成后,运行以下apt install命令安装RabbitMQ服务器。

sudo apt install rabbitmq-server

安装RabbitMQ软件包

输入Y继续安装。

安装完成后,使用以下命令检查rabbitmq-server服务。你可以看到RabbitMQ服务器已自动启用并正在运行。

sudo systemctl is-enabled rabbitmq-server
sudo systemctl status rabbitmq-server

至于RabbitMQ服务器端口,使用下面的ss命令确保端口5672处于LISTEN状态。

ss -tulpn

RabbitMQ端口状态

配置RabbitMQ服务器

安装RabbitMQ服务器后,你可以通过RabbitMQ配置文件/etc/rabbitmq/rabbitmq-env.conf更改默认绑定IP地址和节点名称。这是可选的,特别是如果你想构建将在本地/私有IP地址上运行的RabbitMQ集群。此外,不要直接在公网IP地址上运行RabbitMQ。

使用nano编辑器编辑RabbitMQ配置文件/etc/rabbitmq/rabbitmq-env.conf

sudo nano /etc/rabbitmq/rabbitmq-env.conf

NODENAME更改为你的服务器主机名,将NODE_IP_ADDRESS更改为Ubuntu服务器的内网IP地址,NODE_PORT可以保持默认值。在本例中,我们将在本地IP地址192.168.5.65上运行RabbitMQ。

NODENAME=noble64
NODE_IP_ADDRESS=192.168.5.65
NODE_PORT=5672

保存文件并退出编辑器。

现在运行以下systemctl命令重启RabbitMQ服务器以应用更改。

sudo systemctl restart rabbitmq-server

最后运行以下ss命令确保RabbitMQ服务器正在你的内网IP地址上运行。

ss -tulpn | grep 5672

以下输出显示RabbitMQ服务器正在IP地址192.168.5.65上运行。

设置RabbitMQ管理员

在本节中,你将学习如何通过rabbitmq-plugins启用rabbitmq_management插件。这将为你提供一个管理员界面,允许你通过Web浏览器监控和配置RabbitMQ。之后,你还将通过rabbitmqctl命令行为RabbitMQ服务器安装创建一个管理员用户。

首先,执行以下rabbitmq-plugins命令启用rabbitmq_management插件。这将同时启用其他插件,如rabbitmq_management_agentrabbitmq_web_dispatch

sudo rabbitmq-plugins enable rabbitmq_management

启用管理插件

现在运行以下命令创建一个新用户admin,密码为adminpass。然后,将admin用户设为管理员,并授予RabbitMQ服务器中所有可用vhost的权限。

rabbitmqctl add_user admin adminpass
rabbitmqctl set_user_tags admin administrator
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

创建管理员用户

接下来,运行以下systemctl命令重启RabbitMQ服务器以应用更改。执行后,RabbitMQ管理界面将在端口15672上运行。

sudo systemctl restart rabbitmq-server

使用以下命令检查系统上的开放端口。你将看到端口15672处于LISTEN状态。

ss -tulpn

访问RabbitMQ管理面板

访问你的Ubuntu服务器IP地址,例如 http://192.168.5.65:15672/。如果一切正常,你将看到RabbitMQ登录页面。

RabbitMQ登录页面

输入用户admin和密码adminpass,然后点击Login确认。如果你使用了不同的用户名和密码,请相应更改。

如果成功,你将看到RabbitMQ管理面板。

RabbitMQ管理面板

总结

恭喜!你已完成在Ubuntu 24.04上安装RabbitMQ服务器。你学习了两种安装RabbitMQ的方法:通过Ubuntu仓库和使用Cloudsmith镜像。之后,你还更改了RabbitMQ绑定地址和节点名称,启用了rabbitmq_management插件,并使用rabbitmqctl工具创建了管理员用户。

你可以在其他服务器上安装RabbitMQ,然后从这里创建集群。