MQ的简单介绍

2 篇文章 0 订阅
1 篇文章 0 订阅

1、什么是MQ?

MQ全称 Message Queue(消息队列),是在消息的传输过程中保存消息的容器。多用于分布式系统之间进行通信。
如下图所示:

在这里插入图片描述

2、MQ的优劣势

2.1、MQ的优势

因为MQ有三大优势,如下所示:

2.1.1、应用解耦

如果我们的应用与应用直连的话,如果一方宕机,可能会导致整个系统不能使用,使用 MQ 就可以使得应用间解耦,提升容错性和可维护性。
如下图所示:

在这里插入图片描述

2.1.2、异步提速

例如下图所示,当我们下一个订单之后,我们的订单系统需要连接我们的库存系统,支付系统以及物流系统,而与每个系统交互的时间为300ms,在每得到一个响应时才能与下个系统进行交互,最后还要与数据库交互20ms,那么总共就是920ms,但是当我们使用的MQ之后,请看下面。

在这里插入图片描述

我们使用了MQ之后,我们就会发现,当有用户下单时,我们只需要将订单放到MQ中,然后其它系统异步去获取,不需要等待,我们放一条消息为5ms,然后与数据库交互是20ms,那么用户感知的整个过程就只有25ms,其它工作都会异步执行,效率提高了很多。

在这里插入图片描述

2.1.3、削峰填谷

如下图所示,我们的A系统每次只能处理最大1000个请求,但是某一瞬间请求数量突然增多,达到了每秒5000个请求,那么这个时候,如果我们用了MQ,A系统就不会直接接收到这5000个请求,而是自己会去MQ中每秒拿1000个请求去处理,这就叫削峰填谷。
在这里插入图片描述

在这里插入图片描述

2.2、MQ的劣势

2.2.1、系统可用性降低

系统引入的外部依赖越多,系统稳定性越差。一旦 MQ 宕机,就会对业务造成影响。
产生的问题就是:
如何保证MQ的高可用?

2.2.2、系统复杂度提高

MQ 的加入大大增加了系统的复杂度,以前系统间是同步的远程调用,现在是通过 MQ 进行异步调用。
产生的问题就是:
如何保证消息不被丢失等情况?

3、MQ常见的产品

3.1、目前市面上MQ常见的产品比较一

在这里插入图片描述

3.2、Kafka、RabbitMQ和RocketMQ三款产品比较

在这里插入图片描述

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值