在 Ubuntu 22.04|20.04|18.04 上安装 RabbitMQ 服务器
RabbitMQ 是一款开源消息代理软件,它通过插件实现高级消息队列协议 (AMQP) 和面向流文本的消息协议、消息队列遥测传输和其他协议。
消息代理的工作是从发布者(发布消息的应用程序)接收消息并将它们路由到消费者(处理消息的应用程序)。 AMQP 是一种消息传递协议,使一致的客户端应用程序能够与一致的消息中间件代理进行通信。
请按照以下步骤在 Ubuntu 22.04|20.04|18.04 LTS 上安装 RabbitMQ Server。
第 1 步:安装 Erlang/OTP
RabbitMQ 需要先安装 Erlang,然后才能运行。使用我们之前的指南在 Ubuntu 22.04|20.04|18.04 系统上安装 Erlang:
- 如何在 Ubuntu 上安装最新的 Erlang
安装 Erlang 后,继续执行步骤 2。
步骤 2:将 RabbitMQ 存储库添加到 Ubuntu
RabbitMQ 团队在 PackageCloud(包托管服务)上维护着一个 apt 存储库。它提供了最新 RabbitMQ 版本的软件包。
让我们将 RabbitMQ 存储库添加到我们的 Ubuntu 系统中。
curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.deb.sh | sudo bash
如果成功则命令执行输出:
Detected operating system as Ubuntu/jammy.
Checking for curl...
Detected curl...
Checking for gpg...
Detected gpg...
Running apt-get update... done.
Installing apt-transport-https... done.
Installing /etc/apt/sources.list.d/rabbitmq_rabbitmq-server.list...done.
Importing packagecloud gpg key... done.
Running apt-get update... done.
The repository is setup! You can now install packages.
步骤3:安装RabbitMQ服务器Ubuntu 22.04|20.04|18.04
要安装 RabbitMQ Server Ubuntu LTS 系统,请先更新 apt 列表:
$ sudo apt update
Hit:1 http://security.ubuntu.com/ubuntu jammy-security InRelease
Hit:2 https://download.docker.com/linux/ubuntu jammy InRelease
Hit:3 http://ke.archive.ubuntu.com/ubuntu jammy InRelease
Hit:4 http://ke.archive.ubuntu.com/ubuntu jammy-updates InRelease
Hit:6 http://ke.archive.ubuntu.com/ubuntu jammy-backports InRelease
Hit:5 https://packagecloud.io/rabbitmq/rabbitmq-server/ubuntu jammy InRelease
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.
然后安装rabbitmq-server
包:
sudo apt install rabbitmq-server
按y键开始安装。
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
socat
The following NEW packages will be installed:
rabbitmq-server soca
0 upgraded, 2 newly installed, 0 to remove and 27 not upgraded.
Need to get 12.3 MB of archives.
After this operation, 15.3 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
安装后,RabbitMQ 服务将启动并可在启动时启动。要检查状态,请运行:
$ systemctl status rabbitmq-server.service
● rabbitmq-server.service - RabbitMQ broker
Loaded: loaded (/lib/systemd/system/rabbitmq-server.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2022-05-12 23:57:22 EAT; 40s ago
Main PID: 5631 (beam.smp)
Tasks: 28 (limit: 9460)
Memory: 95.0M
CPU: 3.177s
CGroup: /system.slice/rabbitmq-server.service
├─5631 /usr/lib/erlang/erts-12.2.1/bin/beam.smp -W w -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -MHlmbcs 512 -MMmcs 30 -P 1048576 -t 5000000 -stbt db -zdbbl 128000 -sbwt none -sbwtdcpu>
├─5642 erl_child_setup 32768
├─5672 /usr/lib/erlang/erts-12.2.1/bin/epmd -daemon
├─5699 inet_gethost 4
└─5700 inet_gethost 4
Mei 12 23:57:21 ubuntu22 rabbitmq-server[5631]: Doc guides: https://rabbitmq.com/documentation.html
Mei 12 23:57:21 ubuntu22 rabbitmq-server[5631]: Support: https://rabbitmq.com/contact.html
Mei 12 23:57:21 ubuntu22 rabbitmq-server[5631]: Tutorials: https://rabbitmq.com/getstarted.html
Mei 12 23:57:21 ubuntu22 rabbitmq-server[5631]: Monitoring: https://rabbitmq.com/monitoring.html
Mei 12 23:57:21 ubuntu22 rabbitmq-server[5631]: Logs: /var/log/rabbitmq/[email
Mei 12 23:57:21 ubuntu22 rabbitmq-server[5631]: /var/log/rabbitmq/rabbit@ubuntu22_upgrade.log
Mei 12 23:57:21 ubuntu22 rabbitmq-server[5631]: <stdout>
Mei 12 23:57:21 ubuntu22 rabbitmq-server[5631]: Config file(s): (none)
Mei 12 23:57:22 ubuntu22 rabbitmq-server[5631]: Starting broker... completed with 0 plugins.
Mei 12 23:57:22 ubuntu22 systemd[1]: Started RabbitMQ broker.
您可以使用以下命令确认该服务是否配置为在启动时启动:
$ systemctl is-enabled rabbitmq-server.service
enabled
如果它返回禁用,请通过运行启用它:
sudo systemctl enable rabbitmq-server
第 4 步:启用 RabbitMQ 仪表板(可选)
您可以选择启用 RabbitMQ 管理 Web 仪表板以方便管理。
$ sudo rabbitmq-plugins enable rabbitmq_management
Enabling plugins on node rabbit@ubuntu:
rabbitmq_management
The following plugins have been configured:
rabbitmq_management
rabbitmq_management_agent
rabbitmq_web_dispatch
Applying plugin configuration to rabbit@ubuntu...
The following plugins have been enabled:
rabbitmq_management
rabbitmq_management_agent
rabbitmq_web_dispatch
started 3 plugins.
Web 服务应侦听 TCP 端口 15672
$ sudo ss -tunelp | grep 15672
tcp LISTEN 0 128 0.0.0.0:15672 0.0.0.0:* users:(("beam.smp",pid=9525,fd=71)) uid:111 ino:39934 sk:9 <->
如果您有活动的 UFW 防火墙,请打开端口 5672 和 15672:
sudo ufw allow proto tcp from any to any port 5672,15672
通过打开 URL http://[服务器 IP|主机名]:15672
来访问它
默认情况下,来宾用户存在并且只能从localhost
连接。您可以使用密码“guest”在本地使用该用户登录
为了能够登录网络,请创建一个管理员用户,如下所示:
sudo rabbitmqctl add_user admin StrongPassword
sudo rabbitmqctl set_user_tags admin administrator
使用此管理员用户名和分配的密码登录。
第5步:设置RabbitMQ集群(可选)
如果您需要实现高可用性和更高的吞吐量,请考虑按照以下指南在 Ubuntu 22.04|20.04|18.04 服务器上配置 RabbitMQ 集群:
- 如何在 Ubuntu 上配置 RabbitMQ 集群
RabbitMQ 用户管理命令
删除用户:
rabbitmqctl delete_user user
更改用户密码:
rabbitmqctl change_password user strongpassword
创建新的虚拟主机:
rabbitmqctl add_vhost /my_vhost
列出可用的虚拟主机:
rabbitmqctl list_vhosts
删除虚拟主机:
rabbitmqctl delete_vhost /myvhost
授予用户对虚拟主机的权限:
rabbitmqctl set_permissions -p /myvhost user ".*" ".*" ".*"
列出虚拟主机权限:
rabbitmqctl list_permissions -p /myvhost
列出用户权限:
rabbitmqctl list_user_permissions user
删除用户权限:
rabbitmqctl clear_permissions -p /myvhost user
下一篇要阅读的文章是:
- 如何备份和恢复 RabbitMQ 数据和配置
要在 CentOS 7/CentOS 6 服务器上安装 RabbitMQ,请参阅:
- 在 CentOS 6 和 CentOS 7 上安装 RabbitMQ