本文参考自RabbitMQ官方文档: Installing on RPM-based Linux。
- 下载并安装RabbitMQ官方提供的Erlang语言(安装Erlang语言包括但不限于该种方法)。
// 下载Erlang语言
// a.Bintray托管站下载(推荐)
shell> wget https://bintray.com/rabbitmq-erlang/rpm/download_file?file_path=erlang%2F22%2Fel%2F7%2Fx86_64%2Ferlang-22.3.4.5-1.el7.x86_64.rpm
// b.GitHub托管站下载(没有代理的情况下,不推荐)
shell> wget https://github.com/rabbitmq/erlang-rpm/releases/download/v22.3.4.5/erlang-22.3.4.5-1.el7.x86_64.rpm
// 安装Erlang语言
shell> rpm -Uvh erlang-22.3.4.5-1.el7.x86_64.rpm
Erlang语言 Bintray托管站下载地址: https://bintray.com/rabbitmq-erlang/rpm/erlang
Erlang语言 GitHub托管站下载地址: https://github.com/rabbitmq/erlang-rpm/releases
自行根据环境选择合适版本下载
关于Erlang与RabbitMQ版本的兼容性情况,详情请参阅: https://www.rabbitmq.com/which-erlang.html
- 导入RabbitMQ RPM包签名密钥,下载并安装RabbitMQ。
// 导入RabbitMQ RPM包签名密钥(文件很小,2个导入速度都差不多)
// a.RabbitMQ官方导入
shell> rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
// b.GitHub托管站导入
shell> rpm --import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
// 下载RabbitMQ
// a.Bintray托管站下载(推荐)
shell> wget https://bintray.com/rabbitmq/rpm/download_file?file_path=rabbitmq-server%2Fv3.8.x%2Fel%2F7%2Fnoarch%2Frabbitmq-server-3.8.6-1.el7.noarch.rpm
// b.GitHub托管站下载(没有代理的情况下,不推荐)
shell> wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.6/rabbitmq-server-3.8.6-1.el7.noarch.rpm
// 安装RabbitMQ
shell> yum -y install rabbitmq-server-3.8.6-1.el7.noarch.rpm
RabbitMQ Bintray托管站下载地址: https://bintray.com/rabbitmq/rpm/rabbitmq-server
RabbitMQ GitHub托管站下载地址: https://github.com/rabbitmq/rabbitmq-server/releases
自行根据环境选择合适版本下载(阿里镜像站也有RabbitMQ,但是版本不是最新的,请自行选择)
- 启动RabbitMQ服务器,启用RabbitMQ管理控制台插件。
注意:在启动RabbitMQ之前,请先检查你的主机名是否映射到RabbitMQ服务器的ip地址。如下图所示。
// 如上图所示,hosts文件第一行已经映射了localhost等主机名到127.0.0.1(第二行是ipv6相关的,如需了解自行百度)
// 此处我的主机名为myvm,则需要把映射关系写入hosts(上图hosts文件第三行是我执行下面这条命令才生成的)
shell> echo 127.0.0.1 myvm >> /etc/hosts
// 上面的主机名和ip映射关系配置对了,才能进行以下的启动步骤(否则会失败,我就踩了这个坑)
shell> systemctl start rabbitmq-server
// 设置开机自启
shell> systemctl enable rabbitmq-server
// 启用管理控制台插件
shell> rabbitmq-plugins enable rabbitmq_management
shell> systemctl restart rabbitmq-server
shell> systemctl status rabbitmq-server
- 添加新用户,分配权限和角色。
// 添加用户
shell> rabbitmqctl add_user username password
// 分配权限(针对交换机和队列等,详情参见文末附录)
shell> rabbitmqctl set_permissions -p "/" username ".*" ".*" ".*"
// 分配角色(针对管理控制台,详情参见文末附录)
shell> rabbitmqctl set_user_tags username administrator
// 查看用户
shell> rabbitmqctl list_users
- 开放firewall防火墙5672和15672端口。
// 开放5672端口
shell> firewall-cmd --add-port=5672/tcp --zone=public --permanent
// 开放15672端口
shell> firewall-cmd --add-port=15672/tcp --zone=public --permanent
// 重启防火墙
shell> firewall-cmd --reload
至此安装完成。
- 附录(以上安装过程用到语法的解释,非安装步骤)。
部分语法解释参考自 @总要做些什么 的 《RabbitMQ权限》 一文: https://www.cnblogs.com/shangpolu/p/8275126.html。
// 启用插件
shell> rabbitmq-plugins enable 插件名
shell> rabbitmq-plugins enable rabbitmq_management
// 添加用户
shell> rabbitmqctl add_user 用户名 密码
shell> rabbitmqctl add_user username password
// 分配权限
shell> rabbitmqctl set_permissions -p "vhost路径" 用户名 "交换机和队列的配置权限" "消息写权限" "消息读权限"
shell> rabbitmqctl set_permissions -p "/" username ".*" ".*" ".*"
// 分配角色
shell> rabbitmqctl set_user_tags 用户名 角色
shell> rabbitmqctl set_user_tags username administrator
角色说明:
: administrator:超级管理员(可以登录管理控制台,可以查看所有信息,可以进行所有操作。)
: monitoring:监控者(可以登录管理控制台,可以查看RabbitMQ节点的相关信息。)
: policymaker:决策者(可以登录管理控制台,可以查看策略并进行操作。)
: management:管理员(可以登录管理控制台,但只能看一些全局的统计信息。)
: none:最小权限(不能登录管理控制台,客户端使用。)