消息队列使用场景

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

消息队列

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

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

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

作用

系统解耦

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

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

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

异步处理

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

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

请求缓冲

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

数据分发

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

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

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

相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
消息队列 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
301 0
|
消息中间件 Docker 容器
RabbitMQ01_消息队列概述、使用场景、劣势、架构图与主要概念、Docker快速安装Rabbitmq、角色分类(四)
RabbitMQ01_消息队列概述、使用场景、劣势、架构图与主要概念、Docker快速安装Rabbitmq、角色分类(四)
140 0
|
消息中间件 关系型数据库 MySQL
RabbitMQ01_消息队列概述、使用场景、劣势、架构图与主要概念、Docker快速安装Rabbitmq、角色分类(三)
RabbitMQ01_消息队列概述、使用场景、劣势、架构图与主要概念、Docker快速安装Rabbitmq、角色分类(三)
244 0
RabbitMQ01_消息队列概述、使用场景、劣势、架构图与主要概念、Docker快速安装Rabbitmq、角色分类(三)
|
消息中间件 存储 网络协议
RabbitMQ01_消息队列概述、使用场景、劣势、架构图与主要概念、Docker快速安装Rabbitmq、角色分类(二)
RabbitMQ01_消息队列概述、使用场景、劣势、架构图与主要概念、Docker快速安装Rabbitmq、角色分类(二)
206 0
RabbitMQ01_消息队列概述、使用场景、劣势、架构图与主要概念、Docker快速安装Rabbitmq、角色分类(二)
|
消息中间件 存储 Dubbo
RabbitMQ01_消息队列概述、使用场景、劣势、架构图与主要概念、Docker快速安装Rabbitmq、角色分类(一)
RabbitMQ01_消息队列概述、使用场景、劣势、架构图与主要概念、Docker快速安装Rabbitmq、角色分类(一)
173 0
RabbitMQ01_消息队列概述、使用场景、劣势、架构图与主要概念、Docker快速安装Rabbitmq、角色分类(一)
|
消息中间件 存储 数据可视化
消息队列常见的几种使用场景介绍!
消息队列常见的几种使用场景介绍!
358 0
消息队列常见的几种使用场景介绍!
|
消息中间件 存储 XML
消息队列的使用场景是什么样的?
消息队列的使用场景是什么样的?
消息队列的使用场景是什么样的?
|
6天前
|
消息中间件 存储 监控
RabbitMQ:分布式系统中的高效消息队列
RabbitMQ:分布式系统中的高效消息队列
|
6天前
|
消息中间件 分布式计算 监控
Python面试:消息队列(RabbitMQ、Kafka)基础知识与应用
【4月更文挑战第18天】本文探讨了Python面试中RabbitMQ与Kafka的常见问题和易错点,包括两者的基础概念、特性对比、Python客户端使用、消息队列应用场景及消息可靠性保证。重点讲解了消息丢失与重复的避免策略,并提供了实战代码示例,帮助读者提升在分布式系统中使用消息队列的能力。
42 2
|
6天前
|
消息中间件 Java
springboot整合消息队列——RabbitMQ
springboot整合消息队列——RabbitMQ
82 0

热门文章

最新文章