消息队列学习笔记 | 青训营笔记

118 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 14 天

本堂课重点内容

消息队列(消息中间件)

详细知识点介绍

消息队列是什么

消息队列是利用高效可靠的消息传递机制进行异步的数据传输,并基于数据通信进行分布式系统的集成。通过提供消息队列模型和消息传递机制,可以在分布式环境下扩展进程间的通信。

消息队列作用

1.解耦:系统业务解耦。分布系统之间,不必直接强依赖
2.削峰:消息数据入队出队,流量削峰
3.异步:数据的异步通信,开发人员不需要考虑网络协议和远程调用的问题
4.缓冲:可做缓冲
5.跨语种通信:跨平台跨语种的消息通讯
6.日志

消息队列组成

Broker:消息服务器,作为server提供消息核心服务
Exchange:消息交换机,它指定消息按什么规则,路由到哪个队列
Producer:消息生产者,业务的发起方,负责生产消息传输给broker
Consumer:消息消费者,业务的处理方,负责从broker获取消息并进行业务逻辑处理
Topic:主题,发布订阅模式下的消息统一汇集地,不同生产者向topic发送消息,由MQ服务器分发到不同的订阅者,实现消息的广播
Queue:队列,PTP模式下,特定生产者向特定queue发送消息,消费者订阅特定的queue完成指定消息的接收
Message:消息体,根据不同通信协议定义的固定格式进行编码的数据包,来封装业务数据,实现消息的传输

消息队列传递模式

消息队列有两种消息传递模式,一种是点对点模式,还有一种是发布/订阅模式。

点对点模式

点对点模式是消息生产者将消息发送到队列中,消息消费者从队列中接收消息。消息可以在队列中进行异步传输。

image.png 消息生产者生产消息发送到queue中,然后消息消费者从queue中取出并且消费消息。
消息被消费以后,queue中不再存储,所以消息消费者不可能消费到已经被消费的消息。
Queue支持存在多个消费者,但是对一个消息而言,只会有一个消费者可以消费。

发布/订阅模式

发布订阅模式是通过一个内容节点来发布和订阅消息,这个内容节点称为主题(topic),消息发布者将消息发布到某个主题,消息订阅者订阅这个主题的消息,主题相当于一个中介。消息的发布与订阅相互独立,不需要进行基础操作即可保证消息的传递,发布/订阅模式在消息的一对多广播时采用。

image.png 消息生产者(发布)将消息发布到topic中,同时有多个消息消费者(订阅)消费该消息。和点对点方式不同,发布到topic的消息会被所有订阅者消费。

课后个人总结

消息队列(消息中间件)是位于生产者与消费者之间的一个消息器,它负责消息的搜集和分发,它实现了异步的数据传输,即生产者将消息发出,不需要等待消息被接收,而直接继续工作,消费者从消息队列中取消息即可。消息队列中有点对点和发布订阅两种消息传递模式。