美文网首页软件测试Redis
MQ(消息队列)功能介绍

MQ(消息队列)功能介绍

作者: 心中翼 | 来源:发表于2019-04-30 13:52 被阅读0次

MQ(消息队列)

介绍

消息队列就是基础数据结构中的“先进先出”的一种数据机构。想一下,生活中买东西,需要排队,先排的人先买消费,就是典型的“先进先出”。


image.png

MQ解决什么问题

MQ是一直存在,不过随着微服务架构的流行,成了解决微服务之间问题的常用工具。

应用解耦

以电商应用为例,应用中有订单系统、库存系统、物流系统、支付系统。用户创建订单后,如果耦合调用库存系统、物流系统、支付系统,任何一个子系统出了故障,都会造成下单操作异常。

当转变成基于消息队列的方式后,系统间调用的问题会减少很多,比如物流系统因为发生故障,需要几分钟来修复。在这几分钟的时间里,物流系统要处理的内存被缓存在消息队列中,用户的下单操作可以正常完成。当物流系统恢复后,继续处理订单信息即可,中单用户感受不到物流系统的故障。提升系统的可用性。


image.png

流量消峰

举个栗子,如果订单系统最多能处理一万次订单,这个处理能力应付正常时段的下单时绰绰有余,正常时段我们下单一秒后就能返回结果。但是在高峰期,如果有两万次下单操作系统是处理不了的,只能限制订单超过一万后不允许用户下单。

使用消息队列做缓冲,我们可以取消这个限制,把一秒内下的订单分散成一段时间来处理,这事有些用户可能在下单十几秒后才能收到下单成功的操作,但是比不能下单的体验要好。

消息分发

多个服务队数据感兴趣,只需要监听同一类消息即可处理。

image.png

例如A产生数据,B对数据感兴趣。如果没有消息的队列A每次处理完需要调用一下B服务。过了一段时间C对数据也感性,A就需要改代码,调用B服务,调用C服务。只要有服务需要,A服务都要改动代码。很不方便。

image.png

有了消息队列后,A只管发送一次消息,B对消息感兴趣,只需要监听消息。C感兴趣,C也去监听消息。A服务作为基础服务完全不需要有改动。

异步消息

image.png

有些服务间调用是异步的,例如A调用B,B需要花费很长时间执行,但是A需要知道B什么时候可以执行完,以前一般有两种方式,A过一段时间去调用B的查询api查询。或者A提供一个callback api,B执行完之后调用api通知A服务。这两种方式都不是很优雅

image.png

使用消息总线,可以很方便解决这个问题,A调用B服务后,只需要监听B处理完成的消息,当B处理完成后,会发送一条消息给MQ,MQ会将此消息转发给A服务。

这样A服务既不用循环调用B的查询api,也不用提供callback api。同样B服务也不用做这些操作。A服务还能及时的得到异步处理成功的消息。

相关文章

  • MQ(消息队列)功能介绍

    MQ(消息队列) 介绍 消息队列就是基础数据结构中的“先进先出”的一种数据机构。想一下,生活中买东西,需要排队,先...

  • RocketMQ整体介绍

    1. MQ介绍 1.1 什么是MQ?为什么要用MQ? MQ:MessageQueue,消息队列。队列,是一种FIF...

  • RabbitMQ笔记

    1、消息队列 在介绍RabbitMQ之前先介绍一下消息队列,即MQ,(Message Queue) 消息队列是典型...

  • 一、消息队列简介

    介绍什么是消息队列,并介绍了消息队列的两种主要的应用场景场景。 什么是消息队列 消息队列,我们常简称为MQ(Mes...

  • 3. 消息队列介绍和RabbitMQ

    1. 消息队列介绍 1.1 MQ定义 1.2 MQ使用场合 消息队列作为高并发系统的核心组件之一, 能够帮助业务系...

  • 消息队列概念与认知

    MQ学习系列: 消息队列概念与认知 ActiveMQ Topic消息重发 本文是-消息队列学习的概念与介绍篇。目的...

  • rocketMq整合springBoot快速入门

    一、什么是消息队列 MQ? MQ 是什么?队列是什么,MQ 我们可以理解为消息队列,队列我们可以理解为管道。以管道...

  • 消息队列MQ介绍,主流MQ对比

    为什么我们要用到消息队列? 什么是消息队列? 消息队列(Message Queue),简称为MQ。 从字面看分为消...

  • 消息队列的流派

    消息队列的流派 什么是 MQ Message Queue(MQ),消息队列中间件。很多人都说:MQ 通过将消息的发...

  • 分布式消息中间件MQ简单介绍

    关于分布式消息中间件MQ的详细介绍:【分布式架构】分布式消息中间件MQ开发教程 (阿里云消息队列MQ(Messag...

网友评论

    本文标题:MQ(消息队列)功能介绍

    本文链接:https://www.haomeiwen.com/subject/xkmmnqtx.html