MQ学习——为什么使用消息队列?

ps|本文是最近看儒猿技术窝做的一些笔记

如果面试官问为什么要用消息队列,那么其实就是问问你消息队列都有哪些使用场景,然后你项目里具体是什么场景,说说你在这个场景里消息队列是什么?

而且面试官期望的回答是,你们公司有个xx业务场景,这个业务场景有个什么技术挑战,如果不用MQ可能会很麻烦,但是你现在用了MQ之后带给了你很多的好处。

MQ的使用场景

解耦

在这里插入图片描述
在这里插入图片描述

异步

在这里插入图片描述

在这里插入图片描述

削锋

在这里插入图片描述

在这里插入图片描述


凡事总有利弊之分的,不可能十全十美的。

MQ的缺点:

系统可用性降低

想一下,如果加了MQ,数据的接收与消费都需经过MQ,那岂不是MQ的责任特别重大。

那假如MQ出故障了,系统A就没法发送消息到MQ了,然后系统BCD也没法消费到消息了,那整个系统就崩溃了,就没有办法运转了。

系统复杂度提高

比如说,系统A本来就给系统B发送一条数据就可以了,结果因为系统A和MQ之间协调出现了一些问题,系统A不小心把同一条数据给系统B发送了两次,导致系统B内部插入2条一模一样的数据;

同理,数据也可能会在MQ那里丢失,导致系统B没法收到数据;

还有可能是MQ给系统BCD发送的顺序发送错误,顺序错乱,导致系统B接收到其他系统的数据;

那假如系统B宕机,那要传给系统B的数据就会积压在MQ了。

一致性问题

比如说,有人给系统A发送个请求,本来这个请求应该是系统ABCD都执行成功了,才能返回的。结果,系统ABC执行都成功了,系统D执行失败了,就导致整个请求给用户返回是成功的,但是后台逻辑实际上是没有完全执行完的。


如果想要详细了解的话,我觉得可以看石杉老师讲解的视频,真心不错。
附上链接:儒猿技术窝 | Java工程师面试突击第一季【免费】

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值