一、创建工作文件夹
mkdir -vp /usr/local/software/rabbitmq
cd /usr/local/software/rabbitmq
二、Erlang和Rabbitmq的版本对应关系
重要的事情说三遍
rabbitmq和erlang的版本一定要匹配,不然安装会出各种问题!!!
rabbitmq和erlang的版本一定要匹配,不然安装会出各种问题!!!
rabbitmq和erlang的版本一定要匹配,不然安装会出各种问题!!!
- 本人使用的erlang的版本是23.3.4.1-1.el7,rabbitmq的版本是3.9.13-1.el7
如果你是centos7,一定要下载对应的e17版本,如果是centos8 ,下载对应的el8,千万别下载错了
三、安装Erlang
#下载工具
yum install wget
#下载对应版本的erlang
wget https://github.com/rabbitmq/erlang-rpm/releases/download/v23.3.4.1/erlang-23.3.4.1-1.el7.x86_64.rpm
#安装
rpm -ivh erlang-23.3.4.1-1.el7.x86_64.rpm --force --nodeps
#4、检查 Erlang 版本
erl -version
四、安装、启动RabbitMQ
- yum源的更新(可不执行,根据自己系统是否提示来执行)
#备份原有的yum源配置
sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
#下载阿里云yum源配置文件centos7
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
#centos6
#sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
#centos8
#sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo
#清理缓存并更新yum
sudo yum clean all
sudo yum makecache
#验证更换是否成功
sudo yum install tree
其他下载地址 RabbitMQ其他版本
1、下载 RabbitMQ
#4.1.1
#wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v4.1.1/rabbitmq-server-4.1.1-1.el8.noarch.rpm
#4.1.0
#wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v4.1.0-rc.2/rabbitmq-server-4.1.0.rc.2-1.el8.noarch.rpm
#4.0.4
#wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v4.0.4/rabbitmq-server-4.0.4-1.el8.noarch.rpm
#3.13.6
#wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.13.6/rabbitmq-server-3.13.6-1.el8.noarch.rpm
#最新的el7的是3.9.16
#https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.9.16/rabbitmq-server-3.9.16-1.el7.noarch.rpm
#下载
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.9.13/rabbitmq-server-3.9.13-1.el7.noarch.rpm
#安装
rpm -ivh rabbitmq-server-3.9.13-1.el7.noarch.rpm --force --nodeps
3、启动 RabbitMQ 服务
systemctl start rabbitmq-server # 启动服务
systemctl status rabbitmq-server # 查看服务状态
systemctl stop rabbitmq-server # 停止服务
systemctl enable rabbitmq-server # 开启启动服务
4、开启管理界面插件
rabbitmq-plugins enable rabbitmq_management
4、开放 5672 和 15672 端口
firewall-cmd --zone=public --add-port=5672/tcp --permanent && firewall-cmd --reload
firewall-cmd --zone=public --add-port=15672/tcp --permanent && firewall-cmd --reload
五、添加远程登录用户
# 一、创建账号和密码
rabbitmqctl add_user 用户名 密码
#eg: 添加 admin admin123
#eg: rabbitmqctl add_user admin admin123
# 二、修改用户密码
rabbitmqctl change_password 用户名 新密码
#eg: rabbitmqctl change_password admin admin
# 三、删除用户
rabbitmqctl delete_user 用户名
#eg: rabbitmqctl delete_user guest
#四、清除密码
rabbitmqctl clear_password username
#eg: rabbitmqctl clear_password guest
#五、用户校验
rabbitmqctl authenticate_user 用户名 密码
#eg: rabbitmqctl authenticate_user guest guest
#验成功则返回success,否则出现错误信息。
#六、查询用户
rabbitmqctl list_users
#七、设置用户标签
rabbitmqctl set_user_tags 用户名 角色
#eg:给admin设置administrator角色
#eg: rabbitmqctl set_user_tags admin administrator
- 用户标签类型包括:rabbitmqctl set_user_tags 用户名 角色
用户标签类型 | 权限说明 |
---|---|
management |
访问 management plugin |
policymaker |
访问 management plugin 和管理自己 vhosts 的策略和参数 |
monitoring |
访问 management plugin 和查看所有配置、通道以及节点信息 |
administrator |
拥有所有权限 |
None |
无任何配置 |
六、添加虚拟主机并赋予权限
虚拟主机不是指vm虚拟机,而是指一个通过逻辑进行资源隔离和分区的机制,类似于一个独立的“逻辑服务器”,通过虚拟主机,可以在同一个 RabbitMQ
实例中为不同团队、项目或客户提供独立的环境。
#1、创建虚拟主机
rabbitmqctl add_vhost 虚拟主机名称
#2、删除虚拟主机
rabbitmqctl delete_vhost 虚拟主机名称
#rabbitmqctl delete_vhost /dev
#rabbitmqctl delete_vhost /prod
# 三、为用户添加访问虚拟机 资源权限,添加配置、写、读权限
rabbitmqctl set_permissions -p "/" 用户名 ".*" ".*" ".*"
#eg:给 admin 赋予访问/dev_vhost的权限
#eg: rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
#eg: rabbitmqctl set_permissions -p "/dev_vhost" admin ".*" ".*" ".*"
#eg: rabbitmqctl set_permissions -p "/prod_vhost" admin ".*" ".*" ".*"
- rabbitmqctl set_permissions -p “/” 用户名 “." ".” “.*”
此配置很重要,当程序访问改虚拟机的时候,需要对应的用户有访问权限。
七、卸载
#卸载erlang
yum list | grep erlang
yum -y remove erlang-*
rm -rf /usr/lib64/erlang
#卸载RabbitMQ
yum list | grep rabbitmq
yum -y remove rabbitmq-server.noarch
find / -name rabbit*
rm -rf 依次删除