MQ全称为Message Queue,即消息队列, RabbitMQ是由erlang语言开发,基于AMQP(Advanced Message Queue 高级消息队列协议)协议实现的消息队列,它是一种应用程序之间的通信方法,消息队列在分布式系统开发中应用非常广泛。多用于分布式系统之间进行通信。
Rabbitmq基于AMQP
协议,erlang语言开发,是部署最广泛的开源消息中间件,是最受欢迎的开源消息中间件之一。
由于Rabbitmq是基于erlang语言开发的,所以我们不仅要下载Rabbitmq的安装包还要下载erlang环境依赖包
提供下载安装包及依赖包
提供百度网盘连接
链接:https://pan.baidu.com/s/102ngF3GWU8F2aQe4MYsIaQ
提取码:yyds
也可以手动去官网下载
步骤:
1 下载RabbitMQ的rpm包
比如下载3.8.8版本
下载成功如下:
2 下载Erlang的rpm包
RabbitMQ是Erlang语言编写,所以Erang环境必须要有,注:Erlang环境一定要与RabbitMQ版本匹配:
点击Download下载
安装erlang:
rpm -ivh erlang-21.3-1.el7.x86_64.rpm
安装完成Erlang之后,相当于本地环境安装成功
3 安装内存管理依赖包socat
rabbitmq安装依赖于socat,所以需要先下载socat依赖,再安装rabbitmq
yum install socat -y
4 安装rabbitmq
rpm -ivh rabbitmq-server-3.8.8-1.el7.noarch.rpm
5 启动rabbitmq中的自带的插件管理
(前提是先停止rabbitmq服务)
rabbitmq-plugins enable rabbitmq_management
6 RabbitMQ 服务相关命令
# 启动服务
systemctl start rabbitmq-server
# 查看当前的运行状态
systemctl status rabbitmq-server
# 重启服务
systemctl restart rabbitmq-server
# 停止服务
systemctl stop rabbitmq-server
# 添加开机启动 RabbitMQ 服务
chkconfig rabbitmq-server on
在启动rabbitmq的时候,如果启动失败,出现以下问题解决方法:
一般下是未设置host配置引起的。host文件并未配置,mq服务要启动,需要对应的ip和主机名映射
查看ip:
查看主机名称:(注意主机名称不能是数字及符号组成)
vi /etc/hosts
修改完成之后,重启一下服务器 reboot,而不是重启rabbitmq
7 访问web管理界面
在访问web管理界面之前,需要关闭防火墙
关闭防火墙
systemctl disable firewalld
下次开机 防火墙也不再开启
systemctl stop firewalld
访问rabbit服务器:
http://192.168.10.11:15672/
用默认账号密码(guest)访问地址会出现权限问题
# 添加一个新的用户
# 首先查看当前rabbitmq有哪些用户和角色
rabbitmqctl list_users
# 1 创建账号 用户admin 密码123
rabbitmqctl add_user admin 123
# 2 设置用户角色为超级管理员
rabbitmqctl set_user_tags admin administrator
# 3 设置用户权限
set_permissions [-p <vhostpath>] <user> <conf> <write> <read>
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
用户 admin 具有/vhost1 这个 virtual host 中所有资源的配置、写、读权限
利用 admin 用户登录
web管理界面介绍
1 overview概览
-
connections:无论生产者还是消费者,都需要与RabbitMQ建立连接后才可以完成消息的生产和消费,在这里可以查看连接情况
-
channels:通道,建立连接后,会形成通道,消息的投递获取依赖通道。
-
Exchanges:交换机,用来实现消息的路由
-
Queues:队列,即消息队列,消息存放在队列中,等待消费,消费后被移除队列。
2 Admin用户和虚拟主机管理
- 添加用户
上面的Tags选项,其实是指定用户的角色,可选的有以下几个:
-
超级管理员(administrator)
可登陆管理控制台,可查看所有的信息,并且可以对用户,策略(policy)进行操作。
-
监控者(monitoring)
可登陆管理控制台,同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)
-
策略制定者(policymaker)
可登陆管理控制台, 同时可以对policy进行管理。但无法查看节点的相关信息(上图红框标识的部分)。
-
普通管理者(management)
仅可登陆管理控制台,无法看到节点信息,也无法对策略进行管理。
-
其他
无法登陆管理控制台,通常就是普通的生产者和消费者。
- 创建虚拟主机
虚拟主机-相当于数据库的概念
为了让各个用户可以互不干扰的工作,RabbitMQ添加了虚拟主机(Virtual Hosts)的概念。
其实就是一个独立的访问路径,不同用户使用不同路径,各自有自己的队列、交换机,互相不会影响。
3. 绑定虚拟主机和用户
创建好虚拟主机,我们还要给用户添加访问权限:
点击添加好的虚拟主机:
绑定虚拟主机: