我的编程空间,编程开发者的网络收藏夹
学习永远不晚

【RabbitMQ】什么是RabbitMQ?RabbitMQ有什么用?应用场景有那些?

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

【RabbitMQ】什么是RabbitMQ?RabbitMQ有什么用?应用场景有那些?

一、什么是RabbitMQ?

二、RabbitMQ是干什么的?

三、RabbitMQ的常见作用有那些?

四、RabbitMQ的应用场景有那些?

场景一:用户订单,库存处理。【服务间解耦】

场景二:用户注册,发送手机短信,邮件。【实现异步通信】

场景三:商品秒杀和抢购。【流量削峰】


答:RabbitMQ简称MQ是一套实现了高级消息队列协议的开源消息代理软件,简单来说就是一个消息中间件。是一种程序对程序的通信方法,其服务器也是以高性能、健壮以及可伸缩性出名的Erlang语言编写而成。


答:RabbitMQ简单来说就是一个消息队列中间件,用来保存消息和传递消息的一个容器。在此过程中充当一个中间人的作用。

 而队列的主要目的就是提供正确的路由来保证消息的传递;如果发送消息时消费者不可用的话,默认情况下该消息将会一直被存储在队列中,直到消费者消费为止。

那么同时呢,如果设置了消息存活的时间,即消息的有效期。在此有效期间消息如果还没有被消费的话,那么该消息就会变成死信,由死信交换机接收。而绑定死信交换机的队列则称为死信队列。


答:RabbitMQ的常见作用有三种,分别是服务间解耦、实现异步通信、流量削峰

主要实现了消费者和生产者之间的解耦,发送异步消息,高并发访问解决流量削锋等问题。实现高性能,高可用,可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件。

常见的应用常见有:用户订单,库存处理;用户注册,发送手机短信邮件;商品秒杀和抢购等...


场景一:用户订单,库存处理。【服务间解耦】

使用MQ前:系统正常时,用户下单,订单系统调用库存系统进行删减操作,操作成功,将成返回消息,提醒下单成功。系统异常时,库存系统将无法访问,导致订单删减操作无法执行,最终导致下单失败。

使用MQ后:订单系统和库存系统之间不在互相影响,独立运行,达到了应用解耦的目的。订单系统只需要将下单消息写入MQ,就可以直接执行下一步操作。这时即使库存系统出现异常也不会影响订单系统的操作,且下单的库存删减记录,将会被永久保存到MQ中,直到库存系统恢复正常,从MQ中订阅下单消息,进行消费成功为止。

使用MQ前:

 使用MQ后:

场景二:用户注册,发送手机短信,邮件。【实现异步通信】

使用MQ前:整个操作流程,全部在主线程完成。点击用户注册 --》 入库添加用户 --》发送邮件 --》发送短信。每一步都需要等待上一步完成后才能执行。且每一步操作的响应时间不固定,如果请求过多,会导致主线程请求耗时很长,响应慢,甚至会导致死机的情况出现,严重影响了用户的体验。

使用MQ后:主线程只需要处理耗时较低的入库操作,然后把需要处理的消息写进MQ消息队列中,然后由不同的独立的邮件系统和发短信系统,同时订阅消息队列中的消息进行消费。这样通过消息队列作为一个中间人去保存和传递消息,不仅仅耗时低消耗的资源也很少且单个服务器能够承受的并发请求将更多。

场景三:商品秒杀和抢购。【流量削峰】

流量削峰是消息队列中常用的场景 一般在秒杀或团购活动中使用广泛。

使用MQ前:对于秒杀、抢购活动,用户访问所产生的流量会很大,甚至会在同一时间段出现上万上亿条请求,这股瞬间的流量暴涨,我们的应用系统配置是无法承受的,会导致系统直接崩溃死机。

例如:A系统平时每秒请求100个,系统稳定运行; 但是晚上8点有秒杀活动 ,每秒并发增至1万条 ,系统最大处理每秒1000条 于是导致系统崩溃。 

使用MQ后:我们在大量用户进行秒杀请求时,将那个巨大的流量请求拒在系统业务处理的上层,并将其转移至MQ中,而不是直接涌入我们的接口。在这里MQ消息队列起到了缓存作用。

例如:100万用户在高峰期,每秒请求5000个,将这5000个请求写入MQ系统每秒只能处理2000请求,因为MySQL只能处理2000个请求 ; 系统每秒拉取2000个请求 不超过自己的处理能力即可。

使用MQ前:

使用MQ后:


四季轮换,已经数不清凋零了多少, 愿我们往后能向心而行,一路招摇胜!

🐋 你的支持认可是我创作的动力

💟 创作不易,不妨点赞💚评论❤️收藏💙一下

😘 感谢大佬们的支持,欢迎各位前来不吝赐教

来源地址:https://blog.csdn.net/zsy3757486/article/details/126941322

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

【RabbitMQ】什么是RabbitMQ?RabbitMQ有什么用?应用场景有那些?

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

RabbitMQ使用场景是什么

这篇文章主要介绍“RabbitMQ使用场景是什么”,在日常操作中,相信很多人在RabbitMQ使用场景是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”RabbitMQ使用场景是什么”的疑惑有所帮助!接下来
2023-06-26

RabbitMQ消息队列的应用场景有哪些

RabbitMQ是一个高性能的开源消息中间件,它可以在分布式系统中传递和存储大量的消息。它的应用场景非常广泛,包括但不限于以下几个方面:1. 异步通信:RabbitMQ可以用于解耦发送者和接收者之间的通信,发送者可以将消息发送到队列中,接收
2023-09-20

rabbitmq中routingkey的作用是什么

这篇文章主要为大家展示了“rabbitmq中routingkey的作用是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“rabbitmq中routingkey的作用是什么”这篇文章吧。对于消息
2023-06-15

rabbitmq同步调用的方法是什么

RabbitMQ是一个消息中间件,它主要用于在不同的应用程序之间传递消息。它支持异步消息传递,但不直接支持同步调用。然而,可以使用一些技术或模式来实现同步调用。一种常见的方法是使用RPC(远程过程调用)模式,在这种模式下,客户端应用程序发
2023-10-26

元宇宙是什么?应用场景有哪些?

元宇宙不是一种技术,而是一种概念和理念,它是我们对科技描绘世界的想象和探索,它是我们向往美好生活的一种创新和突破,但每一项新的创新,每一次大变革的到来,都将出现无数的新事情,呈现诸多新场景,诞生一批新组织,呈现万千新机遇,愿有理想的你走在正
元宇宙2024-12-01

什么是堆?有哪些使用场景?

我们在前面二叉树的学习中就知道,完全二叉树最理想的存储方式便是数组,省去了左右节点的指针空间,而且不会造成很大的浪费。比如,节点位置为i,那么其左子树就存放在2i的位置,右子树就存放在2i+1的位置,其父节点在i/2的位置,向上向下索引都

RabbitMQ消息有效期与死信的处理过程是什么

这篇文章主要讲解了“RabbitMQ消息有效期与死信的处理过程是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“RabbitMQ消息有效期与死信的处理过程是什么”吧!一.前言RabbitM
2023-06-29

说一说SPI是什么,有哪些使用场景?

通过今天的分享,希望大家对SPI有了更深入的了解。SPI作为一种服务发现机制,不仅在Java的标准库中广泛应用,而且在各种开发框架和应用中也能看到它的身影。通过SPI,我们能够实现高度的可扩展性和灵活性,使得我们的应用更容易应对未来的变化。

TensorFlowLite是什么它用于什么应用场景

TensorFlow Lite是谷歌开发的一种轻量级的深度学习框架,是TensorFlow的移动和嵌入式设备版本。它专门设计用来在资源受限的设备上执行机器学习模型,如移动设备、物联网设备和嵌入式系统。TensorFlow Lite可以帮助
TensorFlowLite是什么它用于什么应用场景
2024-03-01

香港cdn服务器有什么应用场景

香港CDN服务器可以用于许多不同的应用场景,其中一些主要的包括:网站加速:CDN服务器可以帮助网站加快加载速度,提高用户体验,减少网站加载时间,降低跳出率。视频内容分发:CDN服务器可以有效地分发视频内容,提供更快速、稳定的视频流,适用于在
香港cdn服务器有什么应用场景
2024-04-30

云服务器实际作用有哪些方面的应用场景是什么

存储服务:云服务器提供了高可靠性和可扩展的存储服务,可以将数据备份到云端,用户可以随时随地访问这些数据,并且可以轻松地将其恢复到本地。计算服务:云服务器可以为用户提供高性能的计算服务,支持弹性扩容、按需计费等灵活的计算模式,为用户提供更好的使用体验。网络服务:云服务器可以提供高可靠性的网络服务,可以为用户提供稳定的网络连接,并且支持多用户和多链路部署,保证网络的高可用性和可靠性。应用开发服务:云服...
2023-10-27

MySQL 中双表 dual 有什么用途和应用场景?

mysql 中伪表 dual 的作用和应用场景在 mysql 中,dual 并不是一个真正意义上的表,而是一个虚拟、内部创建的“伪表”,其中只有一行数据,该行包含一个值为 null 的列。虽然 mysql 中没有所谓的真伪表,但它可以在某
MySQL 中双表 dual 有什么用途和应用场景?
2024-10-24

人工智能那么火~如今AI的应用场景都有哪些?

随着科技的发展,人工智能技术也逐渐走进了我们的生活中,应用再各个领域,包括医疗、教育、交通、家居等方面。人工智能的出现不仅帮助了我们,还丰富了我们的生活,本文主要介绍了人工智能的一些主要应用场景。

ArrayBlockQueue函数及应用场景是什么

今天小编给大家分享一下ArrayBlockQueue函数及应用场景是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。队列在
2023-07-05

java多线程应用场景是什么

本篇内容主要讲解“java多线程应用场景是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java多线程应用场景是什么”吧!本教程操作环境:windows7系统、java10版,DELL G3
2023-06-30

mysql分区的应用场景是什么

本篇内容介绍了“mysql分区的应用场景是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!说明1、最佳场景数据的时间序列性较强,则可按时间
2023-06-20

ssl原理及应用场景是什么

SSL(Secure Sockets Layer)是一种加密协议,用于保护在互联网上传输的数据安全。它使用公钥加密来保护数据的机密性和完整性,以及数字签名来验证数据的真实性。SSL通常用于Web浏览器和服务器之间的安全通信,以确保数据传输过
2023-06-12

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录