RabbitMQ入门 -- 阿里云服务器安装RabbitMQ

简介: 什么是RabbitMQ,浅谈RabbitMQ!
📢📢📢📣📣📣

哈喽!大家好,我是【 Bug 终结者,【CSDNJava领域优质创作者】🏆,阿里云专家博主🏆,51CTO人气博主🏆,InfoQ写作专家🏆 <br/>
一位上进心十足,拥有极强学习力的【 Java领域博主】😜😜😜 <br/>
🏅【Bug 终结者】博客的领域是【面向后端技术】的学习,未来会持续更新更多的【后端技术】以及【学习心得】。 偶尔会分享些前端基础知识,会更新实战项目,面向企业级开发应用
🏅 如果有对【后端技术】、【前端领域】感兴趣的【小可爱】,欢迎关注【Bug 终结者】💞💞💞


❤️❤️❤️ 感谢各位大可爱小可爱! ❤️❤️❤️

在这里插入图片描述

@[TOC]

一、什么是MQ?

消息队列(Message Queue,简称MQ),从字面意思上看,本质是个队列,FIFO先入先出,只不过队列中存放的内容是message而已。

其主要用途:不同进程Process/线程Thread之间通信。

队列是一种先进先出的结构:FIFO

把要传输的数据放在队列中

把数据放到消息队列叫生产者

从消息队列取出消息叫做消费者

二、什么是RabbitMQ?

RabbitMQ是一套开源(MPL)的 消息队列服务软件,是由 LShift 提供的一个 Advanced Message Queuing Protocol (AMQP) 的开源实现,由以高性能、健壮以及可伸缩性出名的 Erlang 写成。

RabbitMQ的特性

  • 可伸缩性:集群服务
  • 消息持久化:从内存持久化消息到硬盘,再从硬盘加载到内存

三、使用RabbitMQ的好处

☁️解耦

系统A在代码中直接调用系统B和系统C的代码,如果将来D系统接入,系统A还需要修改代码,过于麻烦!

系统A可以生成一个id,然后系统B需要这个id,系统A去调用了系统B

过了段时间,系统C说也要系统A的id,那么这时接触系统B的引用,去讲id传给系统C

这时又来了系统D,系统D也要系统A的id,系统A又解除了系统C,去调用了系统D,反反复复,很麻烦

系统A的负责人觉得改来改去太麻烦了,没意思,跑路了。

过段时间,公司来了位大佬,大佬说将系统A的id,存入消息队列,谁需要谁去拿,这样系统A就不用来回改动了,完美解决了参数调用问题!

系统A不关心谁去调用id,只负责生产数据并存入消息队列,其它系统即使挂了或请求超时,也跟系统A没有任何关系

这样就实现了系统A、B、C、D之间的解耦!

⛄异步

再来看看这种情况,系统A还是直接调用系统B、C、D

系统A:主要业务

系统B:短信业务

系统C:邮箱业务

系统D:处理后续业务

系统A下单成功后会去调用系统B,但是如果一个一个的调用,会大大的降低效率,假设每个业务执行时间100ms,那么4个业务执行完毕就是400ms,这种就被称为阻塞执行

那么我们的消息队列采用了异步机制,当我们下单完成后,会去异步的调用其它业务,会极大的降低系统的执行时间,提升效率!

⚡削峰/限流

例如:双十一大促销,这时的流量是很大很大的,并发很高,比如每秒5000个请求,假设现在又3台机器处理,并且每台机器每秒只能处理1500次请求,那么多出来的请求500请求,会将系统搞垮的,这时我们可以将多出来的请求放入消息队列中

这样即使每秒有10000个请求,也不会将系统搞垮,会在消息队列中等待,由系统去分配请求处理

四、Linux环境下手动安装RabbitMQ

🚡环境准备

阿里云Centos7.6服务器

lsb_release -a

在这里插入图片描述

在2022年5月,RabbitMQ官方发布推文宣称最新的版本已经不支持Centos7.x系列,但是我们可以通过下载之前支持的版本来部署!

下载RabbitMQ RPM包

RabbitMQ下载

在这里插入图片描述

下载成功如下

在这里插入图片描述

下载ErLang RPM包

这里需要注意,下载的版本要和RabbitMQ对应,必须支持下载的ErLang版本

在这里插入图片描述

我们找到下载的是 3.8.13 ,支持的最低是 22.3 最高是 23.x

下载ErLange

在这里插入图片描述

点击Download下载或单机wget复制下在Linux下 下载

使用FileZilla上传至阿里云服务器

阿里云服务器在 /usr/local 下新建 rabbitmq 文件夹

在这里插入图片描述

上传完成

安装ErLang
# 解压erlang文件
rpm -Uvh erlang-23.2.7-2.el7.x86_64.rpm
#安装erlang
yum install -y erlang

在这里插入图片描述

查看erlang版本
erl -v

在这里插入图片描述

♻️安装并启动RabbitMQ

在安装RabbitMQ之前要安装一个插件

yum install -y socat

在这里插入图片描述

解压并安装RabbitMQ
# 解压
rpm -Uvh rabbitmq-server-3.8.13-1.el8.noarch.rpm
# 安装
yum install -y rabbitmq-server

在这里插入图片描述

启动RabbitMQ服务
# 启动服务
systemctl start rabbitmq-server
# 查看当前的运行状态
systemctl status rabbitmq-server
# 重启服务
systemctl restart rabbitmq-server
# 停止服务
systemctl stop rabbitmq-server

在这里插入图片描述

可以看到,启动成功!

五、手动安装RabbitMQWeb管理界面和授权

⌛安装并启动RabbitMQ管理插件

# 安装RabbitMQWeb管理插件
rabbitmq-plugins enable rabbitmq_management
# 安装完成后重启rabbitmq服务
systemctl restart rabbitmq-server

在这里插入图片描述

启动成功,默认Web页面占用端口为 15672,我们去阿里云服务器控制台开放此端口

在这里插入图片描述

测试访问

浏览器输入 http://您的ip地址:15672

出现如下界面

在这里插入图片描述

默认登录账号密码 guest guest 登录测试
在这里插入图片描述

这个意思是我们只能通过本地来登录guest 账户

下面给出解决方案

😃添加账户

# 添加一个用户
rabbitmqctl add_user admin admin
# 将用户设置为admin权限
rabbitmqctl set_user_tags admin administrator

在这里插入图片描述

✳️再次测试访问

在这里插入图片描述

访问成功,手动安装成功!

六、Linux环境下Docker安装RabbitMQ

⌛安装Docker

先查看本机是否存在Docker,删除旧版本Docker

查看docker 版本

docker version

在这里插入图片描述

没有docker,我们执行以下命令,删除残余文件

yum remove docker \
               docker-client \
               docker-client-latest \
               docker-common \
               docker-latest \
               docker-latest-logrotate \
               docker-logrotate \
               docker-engine

进入Linux根目录,安装Docker

# 安装yum-utils包(提供yum-config-manager 实用程序)并设置稳定的存储库。
yum install -y yum-utils

# 安装阿里云配置
yum-config-manager \
     --add-repo \
     http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装Docker 最新引擎

yum install docker-ce docker-ce-cli containerd.io

在这里插入图片描述

输入y确认即可!

🗳️配置阿里云加速镜像

打开阿里云控制台,弹性计算 --> 容器与镜像服务

在这里插入图片描述

打开之后选择 镜像工具 --> 镜像加速器,复制内容即可
在这里插入图片描述


进入Linux服务器根据步骤配置镜像加速器
# 创建docker文件夹
sudo mkdir -p /etc/docker

# 打开文件并配置内容
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://pfjide5p.mirror.aliyuncs.com"]
}
EOF

# 重启服务
sudo systemctl daemon-reload
# 启动docker
sudo systemctl restart docker

新建文件夹

在这里插入图片描述

配置内容,并重启服务

在这里插入图片描述

根据步骤一步步创建即可!

♨️安装并启动RabbitMQ

# 获取镜像,这个是带着web页面的
docker pull rabbitmq:management
# 运行 rabbitmq 并映射端口 设置默认账户密码admin
docker run -di --name myrabbit -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 -p 25672:25672 -p 61613:61613 -p 1883:1883 rabbitmq:management

在这里插入图片描述

❇️测试RabbitMQ

浏览器输入 http://您的ip地址:15672 并输入admin admin

出现如下界面

在这里插入图片描述

至此,在Docker内安装RabbitMQ完成!

⛵小结

以上就是【Bug 终结者】对RabbitMQ入门 -- 阿里云服务器安装RabbitMQ简单的概述,RabbitMQ是很常用的中间件,使用它,可提高程序的性能,底层使用通道,多路复用等,完美的利用CPU完成任务,RabbitMQ可承受高并发,拥有高性能,可谓是开发利器!

如果这篇【文章】有帮助到你,希望可以给【 Bug 终结者】点个赞👍,创作不易,如果有对【 后端技术】、【 前端领域】感兴趣的小可爱,也欢迎关注❤️❤️❤️ 【 Bug 终结者】❤️❤️❤️,我将会给你带来巨大的【收获与惊喜】💝💝💝!
相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
相关文章
|
8天前
|
弹性计算 JavaScript 前端开发
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
Node.js 是一种高效的 JavaScript 运行环境,基于 Chrome V8 引擎,支持在服务器端运行 JavaScript 代码。本文介绍如何在阿里云上一键部署 Node.js 环境,无需繁琐配置,轻松上手。前提条件包括 ECS 实例运行中且操作系统为 CentOS、Ubuntu 等。功能特点为一键安装和稳定性好,支持常用 LTS 版本。安装步骤简单:登录阿里云控制台,选择扩展程序管理页面,安装 Node.js 扩展,选择实例和版本,等待创建完成并验证安装成功。通过阿里云的公共扩展,初学者和经验丰富的开发者都能快速进入开发状态,开启高效开发之旅。
|
1月前
|
弹性计算 Ubuntu Linux
阿里云服务器一键安装Docker社区版教程,基于系统运维管理OOS
阿里云服务器一键安装Docker社区版教程,基于系统运维管理OOS自动化部署。支持Ubuntu 22.04/20.04、CentOS 7.7-7.9及Alibaba Cloud Linux 3.2104 LTS。前提条件:ECS实例需运行中且有公网。步骤:选择Docker扩展并安装,验证成功通过命令`docker -v`查看版本号。
299 79
|
10天前
|
弹性计算 JavaScript 前端开发
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
|
2月前
|
存储 人工智能 自然语言处理
ChatMCP:基于 MCP 协议开发的 AI 聊天客户端,支持多语言和自动化安装 MCP 服务器
ChatMCP 是一款基于模型上下文协议(MCP)的 AI 聊天客户端,支持多语言和自动化安装。它能够与多种大型语言模型(LLM)如 OpenAI、Claude 和 OLLama 等进行交互,具备自动化安装 MCP 服务器、SSE 传输支持、自动选择服务器、聊天记录管理等功能。
283 15
ChatMCP:基于 MCP 协议开发的 AI 聊天客户端,支持多语言和自动化安装 MCP 服务器
|
3月前
|
Ubuntu 网络协议 关系型数据库
超聚变服务器2288H V6使用 iBMC 安装 Ubuntu Server 24.04 LTS及后续系统配置
【11月更文挑战第15天】本文档详细介绍了如何使用iBMC在超聚变服务器2288H V6上安装Ubuntu Server 24.04 LTS,包括连接iBMC管理口、登录iBMC管理界面、配置RAID、安装系统以及后续系统配置等步骤。
482 4
|
4月前
|
监控 Java Linux
Linux系统之安装Ward服务器监控工具
【10月更文挑战第17天】Linux系统之安装Ward服务器监控工具
93 5
Linux系统之安装Ward服务器监控工具
|
3月前
|
NoSQL Linux PHP
如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤
本文介绍了如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤。接着,对比了两种常用的 PHP Redis 客户端扩展:PhpRedis 和 Predis,详细说明了它们的安装方法及优缺点。最后,提供了使用 PhpRedis 和 Predis 在 PHP 中连接 Redis 服务器及进行字符串、列表、集合和哈希等数据类型的基本操作示例。
139 4
|
3月前
|
存储 弹性计算 NoSQL
"从入门到实践,全方位解析云服务器ECS的秘密——手把手教你轻松驾驭阿里云的强大计算力!"
【10月更文挑战第23天】云服务器ECS(Elastic Compute Service)是阿里云提供的基础云计算服务,允许用户在云端租用和管理虚拟服务器。ECS具有弹性伸缩、按需付费、简单易用等特点,适用于网站托管、数据库部署、大数据分析等多种场景。本文介绍ECS的基本概念、使用场景及快速上手指南。
133 3
|
4月前
|
弹性计算 应用服务中间件 网络安全
ECS服务器使用:SSL证书安装、配置和问题定位指南
本文简要介绍了SSL证书的生成与部署方法,包括使用OpenSSL生成自签名证书和从CA获取证书的步骤,以及在Apache和Nginx服务器上的配置方法。此外,还提供了测试证书是否生效的方法和常见问题的解决策略,帮助确保证书正确安装并解决调试过程中可能遇到的问题。
309 0
|
4月前
|
域名解析 安全 网络安全
阿里云服务器WordPress环境上安装SSL证书
阿里云服务器WordPress环境上安装SSL证书

热门文章

最新文章