一、简介
RabbitMQ是一个开源的遵循AMQP
协议实现的基于Erlang语言编写,支持多种客户端(语言),用于在分布式系统中存储消息,转发消息,具有高可用高可扩性,易用性等特征。
二、安装步骤
1. 准备工作:
1.1. 查看linux发行版本
[root@VM-4-10-centos ~]# lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.6.1810 (Core)
Release: 7.6.1810
Codename: Core
1.2. 文件包拖入服务器中
[root@VM-4-10-centos ~]# mkdir -p /usr/rabbitmq
创建文件夹并且将准备好的文件拖入文件夹中
2. 安装Erlang
# 解压
rpm -Uvh erlang-xx.x.x-x.el7.x86_64.rpm
# 安装
yum install -y erlang
安装完成后输入如下指令查看版本号
erl -v
3. 安装RabbitMQ
在RabiitMQ
安装过程中需要依赖socat
插件,首先安装该插件
- # 解压
- rpm -Uvh socat-x.x.x.x-5.el7.lux.x86_64.rpm
# 解压
rpm -Uvh rabbitmq-server-x.x.xx-x.el7.noarch.rpm
# 安装
yum install -y rabbitmq-server
4. 启动RabbitMQ
# 启动rabbitmq
systemctl start rabbitmq-server
# 查看rabbitmq状态
systemctl status rabbitmq-server
其他命令:
#开机启动 chkconfig rabbitmq-server on会转发到下面命令
systemctl enable rabbitmq-server.service
# 启动服务
systemctl start rabbitmq-server
# 查看服务状态,running表示启动成功
systemctl status rabbitmq-server.service
# 开机自启动
systemctl enable rabbitmq-server
# 停止服务
systemctl stop rabbitmq-server
5. RabbitMQWeb管理界面及授权操作
5.1. 安装启动RabbitMQWeb管理界面
默认情况下,RabbitMQ没有安装web端的客户端软件,需要安装才可以生效
# 打开RabbitMQWeb管理界面插件
rabbitmq-plugins enable rabbitmq_management
然后我们打开浏览器,访问服务器公网ip:15672
(注意打开防火墙的15672端口),就可以看到管理界面
rabbitmq
有一个默认的账号密码guest
,但该情况仅限于本机localhost进行访问,所以需要添加一个远程登录的用户
5.2. 添加远程用户
# 添加用户
rabbitmqctl add_user 用户名 密码
# 设置用户角色,分配操作权限
rabbitmqctl set_user_tags 用户名 角色
# 为用户添加资源权限(授予访问虚拟机根节点的所有权限)
rabbitmqctl set_permissions -p / 用户名 ".*" ".*" ".*"
角色有四种:
administrator:可以登录控制台、查看所有信息、并对rabbitmq进行管理
monToring:监控者;登录控制台,查看所有信息
policymaker:策略制定者;登录控制台指定策略
managment:普通管理员;登录控制
PS:创建用户echo,密码123456,设置administrator角色,赋予所有权限
创建完成后,访问服务器公网ip:15672
进行登录,然后便可进入到后台
其他指令:
# 修改密码
rabbitmqctl change_ password 用户名 新密码
# 删除用户
rabbitmqctl delete_user 用户名
# 查看用户清单
rabbitmqctl list_users
5.3. 访问web页面
访问地址:服务器 IP+端口号(默认15672),若没有反应,请开放端口,执行下面命令
# 防火墙开放15672端口
firewall-cmd --znotallow=public --add-port=15672/tcp --permanent
#重启防火墙
firewall-cmd --reload
#查看防火墙状态
firewall-cmd --state