文章目录
在当今数据量访问比较大的应用中都用到了消息队列,缓解直接请求的压力,提高服务的性能。消息队列有ActiveMQ、RabbitMq、Kafka等,先安装RabbitMQ感受下,以下记录步骤,方便备查。
名词理解
MQ(Message Queue) 消息队列,通过生产者和消费者模型,生产者不断向消息队列中生产数据,消费者不断从消息队列中获取数据。消息的生产和消费都是异步的,只关系消息的发送和接收,没有业务逻辑的干扰,实现系统间的解耦,又称消息中间件。
RabbitMQ是用Erlang语言编写,因此需要安装 Erlang 环境,在虚拟机linux 的redhat上安装测试,使用 yum、wget等 命令来获取安装包。
1、安装EPEL存储库
Erlang 默认的yum存储库中不可用,可先安装EPEL存储库,并使用yum命令升级软件包和存储库,执行命令如下。
// 1、升级yum
yum -y update
// 安装 EPEL存储库
yum -y install epel-release
2、安装Elang
// 安装Elang
yum -y install erlang socat
// 安装后查看版本
erl -version
查看Elang版本如下图。
3、下载并安装RabbitMQ
首先确认是否安装wget,若未安装则请安装,下载RabbitMQ命令如下。
// 安装wget命令
yum -y install wget
// 下载RabbitMQ
wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.10/rabbitmq-server-3.6.10-1.el7.noarch.rpm
下载的速度不稳定,在下载两次后才成功,网络好的情况下,下载很快。下载完成如下图所示。
运行导入GPG密钥
接下来重要的一步是运行导入GPG密钥,命令如下所示。
// 导入GPG密匙
rpm –import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
// 运用rpm安装
rpm -Uvh rabbitmq-server-3.6.10-1.el7.noarch.rpm
4、运行RabbitMQ
上面命令执行成功,则说明RabbitMQ已经安装到机器上,接下来,启动。
// 启动
systemctl start rabbitmq-server
// 设置开机自启动
systemctl enable rabbitmq-server
// 查看状态
systemctl status rabbitmq-server
5、访问WEB控制台
启动WEB控制台命令,并授权
// 启动
rabbitmq-plugins enable rabbitmq_management
// 将RabbitMQ 文件权限分配给RabbitMQ用户
chown -R rabbitmq:rabbitmq /var/lib/rabbitmq/
chown命令 将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;
创建用户
创建管理用户,对MQ进行管理
// 创建管理员用户,负责整个MQ的运维
rabbitmqctl add_user admin a123456
// 赋予其administrator角色
rabbitmqctl set_user_tags admin administrator
// 为用户授权,使admin具有所有资源的配置、写、读权限以便管理其中的资源
rabbitmqctl set_permissions -p / admin “.*” “.*” “.*”
访问地址
RabbitMQ的默认端口是15672,选择浏览器,在地址栏输入服务器IP+端口即可访问控制页面。
// 浏览器地址,server_IP表示服务器的IP地址
http://server_IP:15672
可能出现的问题
1)控制页面无法访问
检查服务器的防火墙是否关闭,以Redhat为例,查看命令如下。
// 查看防火墙状态,Active: active (running)表示开启
systemctl status firewalld
// 开启
service firewalld start
// 重启
service firewalld restart
// 关闭
service firewalld stop
6、RabbitMQ登录
默认账号:guest
默认密码:guest
可以使用第5步中创建的admin用户名和密码进行登录,登录成功后进入页面,如下图所示。
以上就是软件安装的过程,可以根据项目的实际需要进行队列参数的设置。
参考博客
【1】https://www.linuxprobe.com/linux-rabbitmq.html