消息队列原理笔记

1.消息生产者、消费消费者、队列

  • 消息生产者producer 发送消息到队列
  • 消费消费者consumer 从队列接受消息
  • broker MQ服务端,把消息从发送端传送到接收端
  • 队列queue 消息存储区域。消息按照顺序发送接收,一旦消息被消费处理,该消息将从队列删除。
graph LR producer -- send --> broker broker -- receive --> consumer

2.点对点消息队列模型

点对点模型用于 消息生产者和消息消费者点对点之间点对点的通信

graph LR Sender --> Broker Broker --> Receiver

点对点包含三个角色

  • 消息队列(Queue)
  • 发送者 (Sender)
  • 接受者 (Receiver)

每个消息都被发送到一个特定的队列,接受者从队列获取消息。队列保留着消息,可以放在内存中持久化,直到被消费或超市

特点

  • 每个消息只有一个消费者(Consumer)(一旦被消费,消息就不在消息队列中)
  • 发送者和接受者之间在时间上没有依赖性
  • 接受者在成功接收消息之后需向消息队列应答成功

发布订阅消息模型

graph LR; 发布者1 --> Topic; 发布者2 --> Topic; 发布者3 --> Topic; Topic --> 订阅者1; Topic --> 订阅者2; Topic --> 订阅者3;

发布订阅模型包含三个角色

  • 主题(Topic)
  • 发布者(Publisher)
  • 订阅者 (Subscribe)

多个发布者将消息发送到Topic,系统将这些消息传送给多个订阅者

特点

  • 每个消息可以有多个消费者
  • 发布者和订阅者之间有时间上的依赖性
  • 针对某个Topic的订阅者,它必须创建一个订阅者之后,才能消费发布者的消息
  • 为了消费消息,订阅者必须保持运行状态

点对点和发布订阅的区别
生产者发送一条消息到队列 queue,只有一个消费者能收到

发布者发送到 Topic 的消息,只有订阅了 Topic 的订阅者才能收到消息。

原文地址:https://www.cnblogs.com/fsckzy/p/10767787.html