RabbitMQ(最新):安装教程详解

目录

  • 零、学前必看
    • 0.1 需要创建虚拟机安装centOS7操作系统
    • 0.2 需要会一点Linux基础(创建文件夹、进入目录,编辑文件等)
  • 一、RabbitMQ 简介
    • 1.1 什么是MQ
    • 1.2 什么是RabbitMQ
    • 1.3 常用的消息中间件
    • 1.4 MQ 应用场景
  • 二、RabbitMQ 下载安装与配置
    • 2.1 下载Erlang
    • 2.2 安装RabbitMQ
    • 2.3 RabbitMQ 用户管理
    • 2.4 RabbitMQ 启动 Web控制台
    • 2.5 创建虚拟主机

零、学前必看

0.1 需要创建虚拟机安装centOS7操作系统

0.2 需要会一点Linux基础(创建文件夹、进入目录,编辑文件等)

一、RabbitMQ 简介

1.1 什么是MQ

MQ即消息队列(Message Queue),是一种用于进行异步通信的技术。它允许应用程序异步地向队列中发送消息,而不需要立即等待接收方处理完毕。MQ将消息缓存在队列中,等待消费者进行处理

1.2 什么是RabbitMQ

RabbitMQ是一个开源的消息队列中间件,它实现了 AMQP(Advanced Message Queuing Protocol)协议,并提供了一套强大的消息传递机制。它是由Erlang语言编写的,具有高性能、可靠性和可扩展特性

1.3 常用的消息中间件

  • RabbitMQ
  • RocketMQ
  • Apach Kafka
  • Apache ActiveMQ

1.4 MQ 应用场景

异步通讯

在分布式系统中,不同的服务可能需要共享数据,通过使用消息队列,可以将数据更新操作以消息形式广播到相关服务中,确保数据的一致性和同步性发送方可以将消息发送到消息队列中,而无需等待接收方的即时响应,可以提高系统的响应速度和吞吐量,并解耦发送方和接收方之间的依赖关系

系统解耦

在分布式系统中,多个系统之间,不需要直接交互,通过消息进行业务流转

削峰填谷

在高并发场景下,消息队列可以用于平衡系统的负载。将请求放入消息队列,根据系统的处理能力逐渐消费消息,避免了突发请求对系统造成的压力,实现了削峰填谷的效果

数据同步

在分布式系统中,不同的服务可能需要共享数据,通过使用消息队列,可以将数据更新操作以消息形式广播到相关服务中,确保数据的一致性和同步性

日志处理

将系统的日志信息发送到消息队列,消费者可以独立地处理和存储日志,提供了可靠的日志收集和分析能力

任务调度

将任务放入消息队列中,消费者根据自身的处理能力从队列中获取任务并执行。这种方式可以实现任务的异步执行、提高系统的可伸缩性,同时保证任务的可靠性


二、RabbitMQ 下载安装与配置

2.1 下载Erlang

RabbitMQ是使用Erlang语言开发的,所以要先下载安装Erlang
下载时注意版本兼容性问题:Rabbit Erlang 版本要求
这边我用最新的版本为大家讲解~

Erlang官网
OTP Versions Tree,速度会快很多
RabbitMQ(最新):安装教程详解_第1张图片

# 在根目录创建software文件夹
[root@localhost ~]# mkdir software

# 进入文件夹,用xftp将Erlang的安装包放到该文件夹下,好管理
[root@localhost ~]# cd software

# 安装Erlang之前,需要下载一些依赖包
[root@localhost software]# yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel

# 解压文件Erlang文件夹
[root@localhost software]# tar -zxvf otp-src_26.0.2.tar.gz

# 进入解压后的文件夹
[root@localhost software]# cd otp-OTP-26.0.2/

# 配置Erlang
[root@localhost otp-OTP-26.0.2]# ./configure

# 编译Erlang(过程可能有点长,如有问题,ctrl + z,重新在执行一遍吗,make)
make

# 安装
make install

验证是否安装成功, 输入:erl,如果进入了编程命令行则表示安装成功,退出按 ctrl + z

在这里插入图片描述

2.2 安装RabbitMQ

RabbitMQ下载网址
RabbitMQ(最新):安装教程详解_第2张图片

# 将压缩包放在software文件夹下,解压到/usr/local 文件夹下
[root@localhost software]# tar -xvf rabbitmq-server-generic-unix-3.12.2.tar.xz -C /usr/local/

# 进入 /usr/local/rabbitmq_server-3.12.2/ 文件夹
[root@localhost software]# cd /usr/local/rabbitmq_server-3.12.2/

# 进入 sbin/ 文件夹,这个文件夹下,就是RabbitMQ 所有的功能
[root@localhost rabbitmq_server-3.12.2]# cd sbin/

# 启动RabbitMQ 服务(-detached:后台启动(默认前台启动))
[root@localhost sbin]# ./rabbitmq-server  -detached

# 查看RabbitMQ 服务状态
[root@localhost sbin]# ./rabbitmqctl status

# 停止RabbitMQ 服务状态
[root@localhost sbin]#./rabbitmqctl shutdown

# 配置PATH 环境变量,这样可以在全局使用rabbit的命令,不用局限在rabbitmq的文件夹下
vi +$ /etc/profile # +$可以直接定位到文件的最后一行

RABBIT_HOME=/usr/local/rabbitmq_server-3.12.2 # 建议直接复制,注意路径
PATH=$PATH:$RABBIT_HOME/sbin
export RABBIT_HOME PATH

# 刷新/etc/profile
[root@localhost /]# source /etc/profile

# 测试是否配置成功,如果运行成功,就代表配置成功,反之,可能配置的文件路径有问题
cd /
rabbitmq-server -detached 	# 启动服务
rabbitmqctl status	 		# 查看服务状态
rabbitmqctl shutdown		# 关闭服务

2.3 RabbitMQ 用户管理

用户管理包括增加用户,删除用户,查看用户列表,修改用户密码

rabbitmqctl list_users									# 常看当前用户列表
rabbitmqctl add_user admin root							# 新增用户(设置账号、密码)
rabbitmqctl set_user_tags  admin administrator 			# 设置用户(admin)角色为:administrator 
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"	# 设置用户的权限
rabbitmqctl list_permissions							# 查看用户的参数

在这里插入图片描述

2.4 RabbitMQ 启动 Web控制台

启用Web 插件

Rabbitmq有web管理后台,这个管理后台是以插件的方式提供的,启动后台web管理功能

rabbitmq-plugins list 							# rabbitmq 插件列表
rabbitmq-plugins enable rabbitmq_management 	# 启用web控制台 
rabbitmq-plugins disable rabbitmq_management 	# 禁用web控制台

关闭防火墙

systemctl status firewalld 		# 查看防火墙状态
systemctl stop firewalld		# 关闭防火墙,服务器重启之后会失效
systemctl disable firewalld		# 防火墙置为不可用,服务器重启后,依然是不可用

RabbitMQ(最新):安装教程详解_第3张图片

访问 Web控制台

输入:ip a ,查看自己的主机

RabbitMQ(最新):安装教程详解_第4张图片
输入:rabbitmqctl statis,查看rabbitmq的端口
在这里插入图片描述
打开浏览器,输入主机:端口,如:http://192.168.198.132:15672/
RabbitMQ(最新):安装教程详解_第5张图片
账号:admin
密码:root
账号、密码就是上面创建角色那一步设置的 2.3

2.5 创建虚拟主机

RabbitMQ(最新):安装教程详解_第6张图片

你可能感兴趣的:(rabbitmq,分布式)