什么是消息队列
MQ (Message Queue),消息队列可以理解为一种在 TCP 协议之上构建的一个 简单的协议,但它又不是具体的通信协议,而是更高层次的 通信模型 即 生产者 / 消费者模型,通过定义自己的生产者和消费者实现消息通信从而屏蔽复杂的底层通信协议;它为分布式应用系统提供异步解耦和削峰填谷的能力,同时也具备互联网应用所需的海量消息堆积、高吞吐、可靠重试等特性
核心概念
- Topic:消息主题,一级消息类型,生产者向其发送消息
- 生产者:也称为消息发布者,负责生产并发送消息至 Topic
- 消费者:也称为消息订阅者,负责从 Topic 接收并消费消息
- 消息:生产者向 Topic 发送并最终传送给消费者的数据和(可选)属性的组合
- 消息属性:生产者可以为消息定义的属性,包含 Message Key 和 Tag
- Group:一类生产者或消费者,这类生产者或消费者通常生产或消费同一类消息,且消息发布或订阅的逻辑一致
消息队列的数据结构
消息队列采用 FIFO 的方式,即 先进先出 的数据结构
消息队列的两大流派
有 Broker
这个流派通常有一台服务器作为 Broker,所有的消息都通过它中转。生产者把消息发送给它就结束自己的任务了,Broker 则把消息主动推送给消费者(或者消费者主动轮询&#