什么是MQ
MQ即消息队列。消息队列的含义是生产者与消费者通信时,把要传输的数据放到队列中。它被广泛应用在异步通信的领域中。
举个栗子:
老师希望学生多读书,经常给学生看一些好书,原来的方式是这样:老师需要等待学生课间的时候,把书给学生送去,并亲眼监督学生读完书才走。久而久之,老师和学生都觉得麻烦。
后来演进成:老师对学生说「我放到书架上的书你都要看」,然后老师每次发现不错的书都放到书架上,学生看到书架上有书就拿下来看。
此时的书架就是一个消息队列,老师是生产者,学生是消费者。
好处:
-
老师想给学生书的时候,不必看学生是否有空,老师只需要把书放到书架上就行了。这样双方时间都更自由。
-
不必亲眼观察学生的读书过程,节省时间。
-
如果有一天另一个学生也想一起看书,老师只需要把书放到书架上,不同的学生从书架上取书即可
-
书架上的书放在那里,学生阅读速度快就早点看完,阅读速度慢就晚点看完,没关系,所以学生(消费者)压力会小一些。
推理出:MQ主要的使用场景就是将比较耗时而且不需要即时(同步)返回结果的操作作为消息放入消息队列。同时由于使用了消息队列,消息的发送方和接收方并不需要彼此联系,也不需要受对方的影响,即解耦和。
MQ的好处
1.解耦