为什么使用MQ?
文章引用地址:
感谢前辈分享
https://github.com/doocs/advanced-java/blob/master/docs/high-concurrency/why-mq.md
为什么使用MQ?就是说我们因为了什么所以使用了MQ
我们使用MQ都是为了我们的业务,因为业务上有个什么场景,因此使用了MQ。
MQ中进场使用的三种场景是,解耦,异步,削峰
首先是解耦
有这样的一个场景,ABCD一共有四个系统,A系统通过接口将数据发送给BCD,此时如果新来了一个E系统也要求放数据,D系统说自己不需要了,这个时候A系统很奔溃
这个场景之下,A系统和其他各种系统的耦合相当严重,A系统要时刻考虑到BCDE四个系统,考虑他们能否接收数据,如果系统挂了,数据要不要重发。
这个时候MQ出现了,A系统产生一条数据发送到MQ中,哪个系统需要数据自己去MQ中消费,哪个系统不需要数据了就不对MQ消费,这样就A系统就不需要考虑给谁发送数据不给谁发,也不用考虑其他的系统是否成功的接收了信息,失败超时了怎么办
这样子A系统就达到了解耦的效果,我们使用MQ就是给他进行了异步解耦。
其次是异步
有这样的一个场景,A系统接收到了一个请求,需要在本地写库自己写库的时间是3ms,还需要在BCD