rabbitMQ
基础知识
在介绍消息队列,rabbitMQ等之前,需要先明确一些基础概念和名词的定义,才能更好地使用rabbitMQ或其他消息队列服务。
什么是生产者和消费者?
简单来说,生产者和消费者是一种设计模式,生产者负责生产消息,而消费者负责消费或者处理消息。消息可以是任意数据。本模式的结构如下:
- 生产者
- 缓冲区
- 消费者
生产者将新的消息存入缓冲区并等待消费者在达到某一特定条件之后进行消费。
本模式有如下优点:
- 解耦:由于有缓冲区,消费者不直接依赖生产者
- 支持并发:不会发生阻塞,原因同上
- 支持忙闲不均:这也是用后缓冲区的好处。
本模型通常还遵循如下约定:
- 生产者仅仅在仓储未满时候生产,仓满则停止生产。
- 消费者仅仅在仓储有产品时候才能消费,仓空则等待。
- 当消费者发现仓储没产品可消费时候会通知生产者生产。
- 生产者在生产出可消费产品时候,应该通知等待的消费者去消费。
什么是消息?
消息包含两部分内容:有效载荷( payload )和标签( label )。有效载荷就是你想要传输的数据。标签描述了有效载荷,并且RabbitMQ 用它来决定谁将获得消息的拷贝。举例来说,不同于TCP 协议的是