相关推荐recommended
RabbitMQ(最新):安装教程详解
作者:mmseoamin日期:2023-12-13

目录

  • 零、学前必看
    • 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

              RabbitMQ(最新):安装教程详解,在这里插入图片描述,第2张

              2.2 安装RabbitMQ

              RabbitMQ下载网址

              RabbitMQ(最新):安装教程详解,在这里插入图片描述,第3张

              # 将压缩包放在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							# 查看用户的参数
              

              RabbitMQ(最新):安装教程详解,在这里插入图片描述,第4张

              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(最新):安装教程详解,在这里插入图片描述,第5张

              访问 Web控制台

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

              RabbitMQ(最新):安装教程详解,在这里插入图片描述,第6张

              输入:rabbitmqctl statis,查看rabbitmq的端口

              RabbitMQ(最新):安装教程详解,在这里插入图片描述,第7张

              打开浏览器,输入主机:端口,如:http://192.168.198.132:15672/

              RabbitMQ(最新):安装教程详解,在这里插入图片描述,第8张

              账号:admin

              密码:root

              账号、密码就是上面创建角色那一步设置的 2.3

              2.5 创建虚拟主机

              RabbitMQ(最新):安装教程详解,在这里插入图片描述,第9张