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

消息队列的作用有哪些

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

北京

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

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

看不清楚,换张图片

免费获取短信验证码

消息队列的作用有哪些

本篇内容介绍了“消息队列的作用有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

流量削峰

消息队列,其实并不是什么深奥的东西,类似这次我们的国庆出行,许多的景区都会出现人满为患,到处都是人从众的现象,这个时候,景区是怎么解决问题的呢?通常就是排队限流了,在检票处设一个等待区域,如果景区里面的人太多,那么就在售票处设立一个等待区,让游客进行排队,  等景区出来一些游客后,再放一批游客进去。

现实的生产环境也是如此,在生产环境中,每个系统的容量是不一样的,核心系统或者简单的系统吞吐量往往比较大,非核心系统与复杂系统往往吞吐量比较低。举个例子,在电商系统中,我们经常要对用户行为进行数据上报,相对于用户浏览、交易等行为,数据上报显得并不那么重要,所以支撑数据上报的系统性能往往是不如核心功能的。

在一些流量的高峰,例如双十一大促,我们一般不会对这种上报系统进行扩容,这个时候,同步的进行数据上报容易引发雪崩,应对这种情况,我们可以把用户行为数据的写入放入异步队列,可以根据数据的写入速度进行消费,从而保证系统的鲁棒性。

系统解耦

当我们开始开发一个系统的时候,逻辑总是比较清晰跟简单,随着需求的迭代,系统会变得越来越复杂,举个简单的例子,原先我们进行一次交易的时候,可能交易系统可能只是践行简单的库存扣减,然后写入订单。随着功能的迭代,我们需要通知广告系统、第三方的卖家的话、需要通知商家系统等等,像阿里巴巴,每发生一次简单的交易行为之后,可能需要通知数十个不同的业务方进行处理。

消息队列的作用有哪些

这些增加的逻辑,假如我们都做在交易系统的话,就会发现交易系统会变得越来越臃肿不堪,而且会难以保证数据的一致性。假如成单之后,通知广告系统失败了(例如网络波动),那么,这次交易行为是否还要进行下去呢,通知广告系统这种可能失败了就算了,要是通知商家系统失败了呢?数据不一致可能会给公司带来投诉与资损,后期开发要花大量的时间进行数据修复。

消息队列,是一种更简单又更可靠的方法。当我们成功完成一次交易行为之后,我们生产一条消息,所有的业务方都来消费这条消息,由业务方自己来保证成功消费。这样子,交易系统就不用关心交易行为的后续动作,大大减少了交易系统的复杂性。

延迟与异步

这样的场景在电商系统是非常常见的,用户创建一次订单之后,可能没有支付,我们可以在创建订单25分钟之后去提醒用户,告诉他有笔订单未支付,从而提高转化率。假如让你来实现这个功能,那么你要怎么做呢?

我们可以使用一个定时任务,每分钟都去扫描数据库,把未支付的订单扫出来,然后通知用户进行支付。这也是一个不错的方法,但是,一个可靠的定时任务的难点这里就不进行赘述了,我们今天来介绍另外一个方法,那就是消息队列。

一些消息队列提供了延迟队列功能,例如RabbitMQ,我们可以利用其延迟的特性,非常简单地实现这个功能。当用户下单的时候,我们发布一个延迟消息,等到消费的时候,再去查询订单的状态,后面,我们会单独讲消息队列延迟是如何保证可靠性的。

“消息队列的作用有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

免责声明:

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

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

消息队列的作用有哪些

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

下载Word文档

猜你喜欢

Kubernetes消息队列的概念有哪些

这篇文章主要介绍“Kubernetes消息队列的概念有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Kubernetes消息队列的概念有哪些”文章能帮助大家解决问题。服务质量服务语义服务质量一般
2023-06-05

RabbitMQ消息队列的特点有哪些

RabbitMQ消息队列的特点包括:可靠性:RabbitMQ使用持久化机制来确保消息的可靠性。它将消息存储在磁盘上,即使在重启服务器或发生故障时,消息也不会丢失。互通性:RabbitMQ支持多种消息协议,包括AMQP、STOMP、MQTT等
2023-10-25

linux消息队列有哪些特点

Linux消息队列具有以下特点:1. 异步通信:发送方和接收方可以独立进行操作,不需要等待对方的响应,提高了系统的并发性能。2. 解耦性:消息队列将发送方和接收方解耦,发送方只需将消息发送到队列中,而不需要知道具体的接收方是谁,接收方只需要
2023-09-21

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

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

redis消息队列的优缺点有哪些

Redis消息队列的优点包括:1. 高性能:Redis是基于内存的,能够提供非常高的读写速度,使得消息队列能够处理大量的消息。2. 可靠性:Redis支持持久化,可以将消息保存到磁盘上,即使发生宕机或重启,也能够恢复消息队列的状态。3. 灵
2023-09-16

消息队列Rabbitmq的交换器类型有哪些

这篇文章主要介绍“消息队列Rabbitmq的交换器类型有哪些”,在日常操作中,相信很多人在消息队列Rabbitmq的交换器类型有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”消息队列Rabbitmq的交换
2023-06-01

Java中关于消息队列的面试题有哪些

这篇文章将为大家详细讲解有关Java中关于消息队列的面试题有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。面试题1:说说你对消息队列的理解,消息队列为了解决什么问题?我们公司业务系统一开始体量较小,很
2023-06-20

Linux编程消息队列相关的函数有哪些

本篇内容介绍了“Linux编程消息队列相关的函数有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、消息队列简介消息队列本质上是位于内核
2023-06-28

Java中消息队列的作用是什么

这篇文章主要讲解了“Java中消息队列的作用是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java中消息队列的作用是什么”吧!1、 这些接口之间耦合比较严重,每新增一个下游功能,都要
2023-06-16

AndroidMessageQueue消息队列主要作用详解

Android消息机制主要指的是Handler的运行机制及其所依赖的MessageQueue和Looper的工作过程,Handler、MessageQueue、Looper组成一个相互联系的整体。本文先从MessageQueue的源码来说明其实现原理
2023-02-16

Kafka和其他消息队列系统有哪些异同点

Kafka和其他消息队列系统的异同点主要体现在以下几个方面:数据存储方式:Kafka使用磁盘存储消息数据,而其他消息队列系统如RabbitMQ、ActiveMQ等通常使用内存存储消息数据。这使得Kafka能够支持更大规模的数据量和更长时间的
Kafka和其他消息队列系统有哪些异同点
2024-03-14

WCF消息队列的类型有几种

这篇文章主要介绍WCF消息队列的类型有几种,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!WCF经过长时间的发展,很多用户都很了解WCF了,这里我发表一下个人理解,和大家讨论讨论。WCF消息队列Message是由通信的
2023-06-17

Go WaitGroup与消息队列的优雅协作

Go WaitGroup与消息队列可以通过优雅协作来提高程序的性能和可维护性。Go WaitGroup是一种用于等待一组goroutine完成任务的机制。它可以确保在所有goroutine完成任务之前,主goroutine不会退出。使用Wa
2023-10-12

c++项目中队列的作用有哪些

这期内容当中小编将会给大家带来有关c++项目中队列的作用有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。队列,是一种先进先出(FIFO)的线性表,一般来说会使用链表或者数组来实现它。队列被允许从后端(
2023-06-06

Redis在消息队列中的妙用

Redis在消息队列中的妙用消息队列是一种常见的解耦架构,用于在应用程序之间传递异步消息。通过将消息发送到队列中,发送者可以在不等待接收者响应的情况下继续执行其他任务。而接收者可以在适当的时间从队列中获取消息并进行处理。Redis是一种常用
Redis在消息队列中的妙用
2023-11-07

编程热搜

目录