1. 什么是消息队列
消息队列(Message Queue,简称MQ)是一种用于在应用程序之间传递消息的技术,通常在分布式系统中使用。它提供了一种异步通信机制,使得应用程序可以通过发送和接收消息来进行数据交换。
消息队列可以用来存储消息,这就涉及到消息队列的三个关键字:存储、消息、队列
问:什么是存储?
答:存储意味着可以保存数据或者是消息
问:什么是消息?
答:消息可能是某种数据结构,例如:字符串、对象、二进制、JSON数据等
问:什么是队列?
答:一种先进先出的数据结构
消息队列的应用场景(作用):在多个不同的系统、应用之间实现消息的传输(也可以存储)。不需要考虑传输应用的编程语言、系统、框架等等。例如,可以让 java 开发的应用发消息,让 php 开发的应用收消息,这样就不用把所有代码写到同一个项目里(应用解耦)。
2. 消息队列模型
消息队列主要由四部分组成:消息生产者(producer)、消息消费者(consumer)、消息(message)和消息队列(queue)
类比:快递员送快递,不用等取件人来拿,可以把快递存入到快递柜,然后发送取件通知给收货人,等到收货人有空的时候去快递柜取出快递。这个过程中快递员不用等收件人来取,取件人也不用特地去取快递,等有空时候取出快递柜里的包裹就可以了。节省了双方的时间。
可以看出消息队列的一个主要优点是可以集中存储消息,使得消息的发送者和接收者无需同时在线,实现了发送者和接收者的解耦。这就是消息队列的核心作用。
消息队列模型总结:
生产者:Producer,类比为快递员,发送消息的人(客户端)
消费者:Consumer,类比为取快递的人,接受读取消息的人(客户端)
消息:Message,类比为快递,就是生产者要传输给消费者的数据
消息队列:Queue ,类比快递柜,就是用来存储消息的地方
标签:存储,类比,队列,生产者,笔记,快递,RabbitMQ,消息 From: https://blog.csdn.net/qq_46614863/article/details/141364437问:为什么不直接传输,要用消息队列?
答:生产者不用关心你的消费者要不要消费、什么时候消费,我只需要把东西给消息队列,我的工作就算完成了。 生产者和消费者实现了解耦,互不影响。