消息队列使用场景

简介: 说到消息中间件,我使用比较多的就是RabbitMQ。在分布式系统中,不同模块之间的通信,除了可以使用 RPC方式进行调用外,MQ也是另外一种方式,也是进程之间进行通信的一种方法。消息队列:传递消息的队列。参与传递消息的双方称为生产者、消费者。生产者和消费者可以只有一个实例,也可以集群部署。

消息队列

说到消息中间件,我使用比较多的就是RabbitMQ。在分布式系统中,不同模块之间的通信,除了可以使用 RPC方式进行调用外,MQ也是另外一种方式,也是进程之间进行通信的一种方法。

消息队列:传递消息的队列。参与传递消息的双方称为生产者、消费者。生产者和消费者可以只有一个实例,也可以集群部署。

  • 消息体:生产者和消费者之间传递的数据
  • 消息格式:可以是简单字符串或者序列化后的复杂文档信息
  • 队列:消息的载体,用于传输和保存消息(类似于数据结构的队列,先进先出)

作用

系统解耦

当某项业务涉及多个业务数据,我们通过使用消息队列,在系统中隐含地加入一个对外的扩展接口,对业务进行接口,使得上游业务只管发消息而不用关注下游的逻辑如何执行。

这也符合开闭原则设计模式,软件实体对扩展开发,对修改关闭,尽量保持系统之间的独立。

场景:业务完成后通知用户业务完成,通过增加消息队列,由下游进行通知,上游专处理业务相关,业务解耦。

异步处理

在处理高并发、高可用等系统设计时,某业务受限于系统承载能力或处理时长过长,无法立即处理完成,可使用消息队列,将请求异步化。

场景:电商的秒杀场景,通过消息队列进行流量削峰。

请求缓冲

通过一个队列实现一个缓冲层,平滑各个业务系统之间的处理性能的不同等

数据分发

消息队列有不同的订阅模式,支持一对多广播机制,可以用来实现数据的分发。

场景:电商平台某最后一件商品被下单购买后,下游的业务可能包含多个,比如减库存,记录日志,通知供应商,更新最新库存等等,此时可以通过消息队列来实现数据的分发。

其实,比较常见的消息队列有Kafka、RocketMQ、RabbitMQ,都可以实现以上相关的场景,但它们之间还有很多差异。

相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
消息中间件 存储 前端开发
消息队列常见的使用场景
消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题 实现高性能,高可用,可伸缩和最终一致性架构。 使用较多的消息队列有 RocketMQ,RabbitMQ,Kafka,ZeroMQ,MetaMQ
325 0
|
消息中间件 关系型数据库 MySQL
RabbitMQ01_消息队列概述、使用场景、劣势、架构图与主要概念、Docker快速安装Rabbitmq、角色分类(三)
RabbitMQ01_消息队列概述、使用场景、劣势、架构图与主要概念、Docker快速安装Rabbitmq、角色分类(三)
265 0
RabbitMQ01_消息队列概述、使用场景、劣势、架构图与主要概念、Docker快速安装Rabbitmq、角色分类(三)
|
消息中间件 存储 网络协议
RabbitMQ01_消息队列概述、使用场景、劣势、架构图与主要概念、Docker快速安装Rabbitmq、角色分类(二)
RabbitMQ01_消息队列概述、使用场景、劣势、架构图与主要概念、Docker快速安装Rabbitmq、角色分类(二)
221 0
RabbitMQ01_消息队列概述、使用场景、劣势、架构图与主要概念、Docker快速安装Rabbitmq、角色分类(二)
|
消息中间件 存储 Dubbo
RabbitMQ01_消息队列概述、使用场景、劣势、架构图与主要概念、Docker快速安装Rabbitmq、角色分类(一)
RabbitMQ01_消息队列概述、使用场景、劣势、架构图与主要概念、Docker快速安装Rabbitmq、角色分类(一)
184 0
RabbitMQ01_消息队列概述、使用场景、劣势、架构图与主要概念、Docker快速安装Rabbitmq、角色分类(一)
|
消息中间件 存储 数据可视化
消息队列常见的几种使用场景介绍!
消息队列常见的几种使用场景介绍!
368 0
消息队列常见的几种使用场景介绍!
|
消息中间件 存储 XML
消息队列的使用场景是什么样的?
消息队列的使用场景是什么样的?
消息队列的使用场景是什么样的?
|
消息中间件 Docker 容器
RabbitMQ01_消息队列概述、使用场景、劣势、架构图与主要概念、Docker快速安装Rabbitmq、角色分类(四)
RabbitMQ01_消息队列概述、使用场景、劣势、架构图与主要概念、Docker快速安装Rabbitmq、角色分类(四)
157 0
|
21天前
|
消息中间件 C语言 RocketMQ
消息队列 MQ操作报错合集之出现"Connection reset by peer"的错误,该如何处理
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
21天前
|
消息中间件 Java C语言
消息队列 MQ使用问题之在使用C++客户端和GBase的ESQL进行编译时出现core dump,该怎么办
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
7天前
|
消息中间件 存储 缓存
一个用过消息队列的人,竟不知为何要用 MQ?
一个用过消息队列的人,竟不知为何要用 MQ?
32 1