【RabbitMQ学习笔记】第一章 MQ的基本概念

素颜马尾好姑娘i 2024-04-08 13:25 172阅读 0赞

文章目录

  • 1、MQ概述
  • 2、MQ的优势
  • 3、MQ的劣势
  • 4、常见的MQ产品

在这里插入图片描述



1、MQ概述

MQ全称Message Queue,消息队列,是在消息的传输过程中保存消息的容器,多用于分布式系统之间进行通信。
在这里插入图片描述

2、MQ的优势

总结六个字:

解耦、异步、削峰






















优势 说明
应用解耦 提高系统的容错性和可维护性
异步提速 提升用户体验和系统吞吐量
削峰填谷 提高系统稳定性
  • 应用解耦
    系统的耦合性越高,容错性就越低(一粒老鼠屎坏一锅汤),可维护性就越低(修改或新增功能时,牵一发而动全身)
    在这里插入图片描述
    引入消息队列以后,即使库存系统挂了,用户消费的消息已经存在于MQ中,提升了容错性和可维护性
    在这里插入图片描述
  • 异步提速
    如图,用户下单以后,订单系统需要调用库存,没问题的话接下来分别支付、物流系统,一个下单操作就耗时20+300+300+300=920ms
    在这里插入图片描述
    引入MQ后,只需将消息写入MQ和DB中,就可以给用户返回下单成功,后续慢慢的去消费MQ中的消息即可。此时每次下单耗时20+5=25ms
    在这里插入图片描述
    之前近一秒钟处理一个请求,现在25ms处理一个请求,(单位时间处理请求的数目增多了)系统的吞吐量增多了,提升了用户体验
  • 削峰填谷
    生活中常见的一秒抢购活动,不引入MQ,每秒5000请求会让系统直接宕机,引入MQ后,问题就成了MQ能不能每秒5000请求,而这个量级,对MQ来说,小case,A系统只需要慢慢的从MQ中去拿消息处理即可。
    在这里插入图片描述
    可以想到,削峰后,高峰期产生的数据会积压在MQ中,这样在高峰期过了的一段时间内,系统仍然会以一定的速度去处理消息,即填谷
    在这里插入图片描述

3、MQ的劣势

A、B两个子系统之间,可以直接同步远程调用,也可以通过MQ实现异步间接调用
在这里插入图片描述

  • 系统可用性降低
    系统引入的外部依赖越多,MQ宕机,就会对业务造成影响(MQ如何保证高可用)
  • 系统复杂度提高
    以前的系统之间同步远程调用,现在通过MQ异步调用,如何保证消息没被重复消费?消息丢失问题如何考虑?消息传递的顺序性?
  • 一致性问题
    A系统处理完业务,通过MQ给B、C、D三个系统发消息,若BC处理成功,D处理失败呢

4、常见的MQ产品

在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,172人围观)

还没有评论,来说两句吧...

相关阅读