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执行失败了,就导致整个请求给用户返回是成功的,但是后台逻辑实际上是没有完全执行完的。
本文地址:https://blog.csdn.net/weixin_43771998/article/details/110945533
上一篇: python跨年表白神器--你值得拥有!
下一篇: 通过Python爬取当当网,学正则表达式