为什么使用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系统就不需要考虑给谁发送数据不给谁发,也不用考虑其他的系统是否成功的接收了信息,失败超时了怎么办