RabbitMQ 的优点
- 基于 ErLang 语言开发具有高可用高并发的优点,适合辑群服务器
- 健壮、稳定、易用、跨平台、支持多种语言、文档齐全
- 有消息确认机制和持久化机制,可靠性高
- 开源
RabbitMQ 的概念
生产者和消费者
- Producer:消息的生产者
- Consumer:消息的消费者
Queue
- 消息队列,提供了 FIFO 的处理机制,具有缓存消息的能力。RabbitMQ 中,队列消息可以设置为持久化,临时或者自动删除。
- 设置为持久化的队列,Queue 中的消息会在 Server 本地硬盘存储一份,防止系统 Crash,数据丢失
- 设置为临时队列,Queue 中的数据在系统重启之后就会丢失
- 设置为自动删除的队列,当不存在用户连接到 Server,队列中的数据会被自动删除
RabbitMQ 的使用过程
- 客户端连接到消息队列服务器,打开一个 Channel。
- 客户端声明一个 ExChange,并设置相关属性。
- 客户端声明一个 Queue,并设置相关属性。
- 客户端使用 Routing Key,在 ExChange 和 Queue 之间建立好绑定关系。
- 客户端投递消息到 ExChange。
- ExChange 接收到消息后,就根据消息的 key 和已经设置的 binding,进行消息路由,将消息投递到一个或多个