为什么要使用消息队列

回答这个问题的思路:

  有个什么业务场景,这个业务场景有个什么技术挑战,如果不用MQ可能会很麻烦,但是你现在用了MQ之后带给了你很多的好处。

解耦

  使用MQ之前,A系统发送一个数据到BCD三个系统,通过接口调用发送,如果E也要这个数据,或者B又突然不要了,A还得去改代码

  而且A还得考虑其他系统挂了怎么办,超时怎么办

  使用MQ之后,系统A只负责发消息,对这个消息感兴趣的系统自己去拿到这个消息去消费

  系统A不用考虑自己要给谁去发数据

异步

  使用MQ之前,A系统接收一个请求,需要在自己本地写库,还需要在BCD三个系统写库,总时长就会变的比较长,给用户的响应就会很慢

  使用MQ之后,系统A发完消息就可以给用户响应了,一些耗时的操作可以异步处理

削峰

  比如双11零点的时候,大量用户同时发起请求,如果没有一些高并发处理,网站可能直接就崩溃了

  使用MQ之后,请求先写入MQ,系统A从MQ中慢慢拉取请求,保证高峰期系统不会挂

  虽然高峰期时,请求会在MQ中积压,但是高峰期过了之后,积压的请求会被慢慢处理掉

转自:中华石杉Java工程师面试突击

原文地址:https://www.cnblogs.com/mengchunchen/p/9996335.html