Centos7安装RabbitMQ

RabbitMQ是一个免费的开源企业消息代理软件。 它是用Erlang编写的,并实现了高级消息队列协议(AMQP)。 它提供所有主要编程语言的客户端库。 它支持多种消息传递协议,消息队列,传送确认,灵活的路由到队列,多种交换类型。 它还提供易于使用的HTTP-API,命令行工具和用于管理RabbitMQ的Web UI;

在当前文档中,我们将在CentOS 7服务器上安装RabbitMQ。

注意:erlang-24.x已经不支持 CentOS7

rpm 安装

安装 RabbitMQ需要安装Erlang

Erlanghttps://github.com/rabbitmq/erlang-rpm/releases
RabbitMQhttps://github.com/rabbitmq/rabbitmq-server/releases

RabbitMQErlang版本对应关系 https://www.rabbitmq.com/which-erlang.html

我这里下载了

1
2
3
4
5
6
7
8
# 安装依赖
rpm -ivh openssl-libs-1.0.2k-25.el7_9.x86_64.rpm --force
# 安装环境
rpm -ivh erlang-22.3.4.21-1.el7.x86_64.rpm
# 验证erlang 是否安装成功
erl -version
# 安装 RabbitMQ
rpm -ivh rabbitmq-server-3.9.15-1.el7.noarch.rpm

配置启动

安装web管理界面

1
2
3
sudo rabbitmq-plugins enable rabbitmq_management
# 查看所有的插件
sudo rabbitmq-plugins list

启动

1
2
3
4
5
6
# 设置开机自启服务
systemctl enable rabbitmq-server
# 启动RabbitMQ
systemctl start rabbitmq-server
# 重启
systemctl restart rabbitmq-server

配置文件

1
vim /etc/rabbitmq/rabbitmq.config

安装好之后在/usr/share/doc/rabbitmq-server-3.6.15/有参考模板rabbitmq.config.example

配置端口,备注:消息端口5672,则web访问端口为 15672

1
2
3
4
5
6
7
8
[
{rabbit,
[
{loopback_users, []},
{tcp_listeners, [5672]}
]
}
]

参考模板

其它管理

用户管理

1
2
3
4
5
6
7
8
9
10
11
12
# 修改guest的密码
sudo rabbitmqctl list_users
sudo rabbitmqctl change_password guest guest

# 创建其他管理员账号比如test/test:
sudo rabbitmqctl add_user maxzhao maxzhao
#
sudo rabbitmqctl set_user_tags maxzhao administrator
# /是 vhost的目录 Configure regexp Write regexp Read regexp
sudo rabbitmqctl set_permissions -p / maxzhao ".*" ".*" ".*"
# Sets user topic permissions for an exchange,默认使用 AMQP default 的exchange
# sudo rabbitmqctl set_topic_permissions

添加vhost

1
2
3
4
5
6
7
8
9
10
11
# 查看帮助
sudo rabbitmqctl --help
# 查看创建 vhost 的帮助
sudo rabbitmqctl add_vhost --help
# 创建
sudo rabbitmqctl add_vhost maxzhao_vhost
# 查看
sudo rabbitmqctl list_vhosts
# 赋权 注意 /maxzhao_vhost 与 maxzhao_vhost 不一样
sudo rabbitmqctl set_permissions -p /maxzhao_vhost maxzhao ".*" ".*" ".*"

删除 vhost

1
2
sudo rabbitmqctl add_vhost maxzhaoTest
sudo rabbitmqctl delete_vhost maxzhaoTest

Yum 安装

安装Erlang

RabbitMQ是用Erlang语言编写的,在本教程中我们将安装最新版本的Erlang到服务器中。 Erlang在默认的YUM存储库中不可用,因此您将需要安装EPEL存储库。 运行以下命令相同。

1
2
yum -y install epel-release 
yum -y update

现在使用以下命令安装Erlang。

1
yum -y install erlang socat logrotate 

您现在可以使用以下命令检查Erlang版本。

1
erl -version

您将得到以下输出。

1
Eshell V5.19.4

Erlang (ASYNC_THREADS,HIPE) (BEAM) emulator version 5.10.4
要切换到Erlang shell,可以键入以下命令。
erl
shell将更改,您将得到以下输出。
Erlang R16B03-1 (erts-5.10.4) [source] [64-bit] [async-threads:10] [hipe] [kernel-poll:false]
Eshell V5.10.4 (abort with ^G)
1>
您可以通过按ctrl + C两次退出shell。 Erlang现在安装在系统上,现在可以继续安装RabbitMQ。

安装RabbitMQ

1
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.9.0/rabbitmq-server-3.9.0-1.el7.noarch.rpm

这里可以随时找到最新版本的RabbitMQ下载页面的链接。

通过运行导入GPG密钥:

1
2
3
4
5
6
## primary RabbitMQ signing key
rpm --import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
## modern Erlang repository
rpm --import https://packagecloud.io/rabbitmq/erlang/gpgkey
## RabbitMQ server repository
rpm --import https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey

安装MQ

1
rpm -Uvh rabbitmq-server-3.9.0-1.el7.noarch.rpm 

启动

您可以通过运行以下命令启动RabbitMQ服务器进程。

1
systemctl start rabbitmq-server

要在引导时自动启动RabbitMQ,请运行以下命令。

1
systemctl enable rabbitmq-server

要检查RabbitMQ服务器的状态,请运行:

1
systemctl status rabbitmq-server

配置源 rabbitmq.repo

1
yum update -y

安装

1
2
yum install socat logrotate -y
yum install erlang rabbitmq-server -y

rabbitmq.repo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
##
## Zero dependency Erlang
##

[rabbitmq_erlang]
name=rabbitmq_erlang
baseurl=https://packagecloud.io/rabbitmq/erlang/el/7/$basearch
repo_gpgcheck=1
gpgcheck=1
enabled=1
# PackageCloud's repository key and RabbitMQ package signing key
gpgkey=https://packagecloud.io/rabbitmq/erlang/gpgkey
https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

[rabbitmq_erlang-source]
name=rabbitmq_erlang-source
baseurl=https://packagecloud.io/rabbitmq/erlang/el/7/SRPMS
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/rabbitmq/erlang/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

##
## RabbitMQ server
##

[rabbitmq_server]
name=rabbitmq_server
baseurl=https://packagecloud.io/rabbitmq/rabbitmq-server/el/7/$basearch
repo_gpgcheck=1
gpgcheck=1
enabled=1
# PackageCloud's repository key and RabbitMQ package signing key
gpgkey=https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey
https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

[rabbitmq_server-source]
name=rabbitmq_server-source
baseurl=https://packagecloud.io/rabbitmq/rabbitmq-server/el/7/SRPMS
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

离线安装获取全部依赖

1
2
3
4
mkdir ~/docker
sudo yum install --downloadonly --downloaddir=/home/maxzhao/erlang/ erlang
sudo yum install --downloadonly --downloaddir=/home/maxzhao/rabbitmq/ rabbitmq-server
sudo yum localinstall /home/maxzhao/erlang/*.rpm

已经安装可以使用 reinstall

本文地址: https://github.com/maxzhao-it/blog/post/21590/