介绍
RabbitMQ 是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。 RabbitMQ服务器是用 Erlang 语言编写的,而集群和故障转移是构建在 开放电信平台框架上的。 所有主要的 编程语言均有与代理接口通讯的客户端库。
本文介绍如何在 CentOS 7 服务器上安装 RabbitMQ。
先决条件
- 拥有一个CentOS 7 服务器。
1.安装Erlang
因为 RabbitMQ 是用 Erlang 编写的,所以在安装 RabbitMQ 之前需要先安装 Erlang。
CentOS 7 的最新稳定版 RabbitMQ,需要 Erlang 版本23.2或更高版本。如果要安装更新版本的 RabbitMQ,请参阅 Erlang 版本兼容的RabbitMQ Erlang 版本要求页面。
RabbitMQ 团队推荐 Erlang 版本 24,因为它为许多工作负载提供了显着的吞吐量改进。但是 Erlang 23 版本的兼容性更好,因为一些社区插件和工具可能与 Erlang 24 不兼容。
通过 SSH 以非 root sudo 用户身份登录服务器。
启用 Extra Packages for Enterprise Linux (EPEL) 存储库,因为它具有 Erlang 所需的软件包:
$ sudo yum -y install epel-release
选择以下选项之一下载所需的 Erlang 版本。
-
**选项 1:**下载 Erlang 23.3.1版本。
$ cd ~ && wget https://packages.erlang-solutions.com/erlang/rpm/centos/7/x86_64/esl-erlang_23.3.1-1~centos~7_amd64.rpm
-
**选项 2:**下载 Erlang 24.x 版本。
$ cd ~ && wget https://packages.erlang-solutions.com/erlang/rpm/centos/7/x86_64/esl-erlang_24.0.2-1~centos~7_amd64.rpm
-
**选项 3:**下载与 RabbitMQ 兼容的更新版本(如果可用)。
转到 Erlang 解决方案下载页面。选择Erlang OTP包,从Platforms列表中选择CentOS ,从Distribution列表中选择****Standard。然后单击查看全部列出 CentOS 的所有版本。选择您想要的版本。复制CentOS 7(64位)对应的下载链接。使用如上所示下载它。
wget
安装下载的包:
$ sudo yum -y install esl-erlang*.rpm
打开 Erlang shell 以验证安装:
$ erl
您应该看到如下内容:
Erlang/OTP 23 [erts-11.2] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1] [hipe]
Eshell V11.2 (abort with ^G)
1>
按CTRL+C两次退出 Erlang shell。
2.安装RabbitMQ
如果centos系统中没有安装wget命令则:
$ yum install wget
下载3.8.19版本的 RabbitMQ:
$ wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.19/rabbitmq-server-3.8.19-1.el7.noarch.rpm
你可以在 GitHub上的发布页面上找到最新版本的 RabbitMQ。确保选择以 结尾的链接el7.noarch.rpm
。
安装下载的包:
$ sudo yum -y install rabbitmq-server*.rpm
启动 RabbitMQ 服务:
$ sudo systemctl start rabbitmq-server.service
使 RabbitMQ 在系统启动时启动:
$ sudo systemctl enable rabbitmq-server.service
检查 RabbitMQ 的状态:
$ sudo rabbitmqctl status
要启用对 RabbitMQ 管理 Web UI 和其他常用功能的访问,请更新防火墙规则以允许端口4369、25672、5671、5672、15672、61613、61614、1883 和 8883 上的入站 TCP 流量。
$ sudo firewall-cmd --zone=public --permanent --add-port=4369/tcp --add-port=25672/tcp --add-port=5671-5672/tcp --add-port=15672/tcp --add-port=61613-61614/tcp --add-port=1883/tcp --add-port=8883/tcp
也可以直接关闭防火墙:
$ systemctl stop firewall
重新加载当前防火墙会话以应用更改:
$ sudo firewall-cmd --reload
3.启用RabbitMQ管理插件
RabbitMQ 管理插件提供了一个 HTTP API、一个 Web UI 和一个用于管理和监视 RabbitMQ 服务器的命令行工具。尽管 Web UI 非常基础,但它可以轻松监控 RabbitMQ 服务器的最新指标。
启用 RabbitMQ 管理插件:
$ sudo rabbitmq-plugins enable rabbitmq_management
在激活过程中,插件会创建一个名为guest
. 删除此帐户以避免安全问题:
$ sudo rabbitmqctl delete_user guest
添加用于访问 Web UI 的新帐户。在以下命令中,将admin替换为您想要的帐户名称:
$ sudo rabbitmqctl add_user admin
admin
出现提示时输入帐户的强密码。
标记admin
为管理员帐户:
$ sudo rabbitmqctl set_user_tags admin administrator
授予admin
帐户适当的权限:
$ sudo rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
现在您可以使用该admin
帐户访问 Web UI。
4. 访问 RabbitMQ 管理 Web UI
您已完成 RabbitMQ 安装。现在重新启动服务器以查看是否一切正常:
$ sudo reboot
等待系统启动。
https://example.com:15672/
如果您在第 4 步中配置了 HTTPS,请在浏览器中打开链接。如果没有,请打开链接http://192.168.254.130:15672/
,将192.168.254.130替换为您的服务器 IP 地址。
出现 RabbitMQ 管理屏幕。使用您之前指定的凭据登录。登录后您将看到 RabbitMQ 指标。