2020-06-12RabbitMQ基本概念

2020-06-12  本文已影响0人  huxiaofeng

消息投递到队列的整个过程大致如下:

  1. 客户端连接到消息队列服务器,打开了一个Channel。
  2. 客户端声明了一个Exchange,并设置了相关属性。
  3. 客户端声明了一个Queue,并设置了相关属性。
  4. 客户端使用Routing Key,在Exchange和Queue之间建立好绑定关系。
  5. 客户端投递消息到Exchange。
  6. Exchange接收到消息后,根据消息的Key和已经设置的Binding,进行消息路由,将消息投递到一个或多个Queue里。

Exchange也有几种类型

  1. Direct交换机:完全根据Key进行投递。
  2. Topic交换机: 对Key进行模式匹配后进行投递,可以使用符合#匹配一个或多个词,符号*匹配正好一个词。
  3. Fanout交换机:不需要任何Key,它采取广播的模式,一个消息进来时,投递到与该交换机绑定的所有队列。

RabbitMQ支持消息的持久化,也就是将数据写在磁盘上。为了数据安全考虑,大多数情况下都会选择持久化。消息队列持久化包括3个部分:

  1. Exchange持久化:在声明时指定durable => 1
  2. Queue持久化:在声明时指定durable => 1
  3. 消息持久化,在投递时指定delivery_mode => 2 (1是非持久化)。

如果Exchange和Queue都是持久化的,那么它们之间的Binding也是持久化的。如果Exchange和Queue两者之间一个是持久化的,一个是非持久化的,就不允许建立绑定。

上一篇 下一篇

猜你喜欢

热点阅读