初探消息队列RabbitMQ

在当今数据量访问比较大的应用中都用到了消息队列,缓解直接请求的压力,提高服务的性能。消息队列有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

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页