文章目录

  • 一、 Rabbitmq 交换器Exchange的5种类型
  • 1.1 简单模式(一个消费者)
  • 1.2 工作队列模式(多个消费者)
  • 1.3(广播模式/分裂模式)(只涉及`交换器`,不涉及路由key)
  • 1.4 路由模式Routing(即:直接模式Direct)涉及`交换器`和`固定路由key`
  • 1.5 通配符路由模式/动态路由模式 Topics (涉及`交换器` 和 `路由key`)
  • 二、不同类型的消息发送姿势




一、 Rabbitmq 交换器Exchange的5种类型

1.1 简单模式(一个消费者)

rabbitmq消费 java批量插入 rabbitmq 一次取多条_直接模式


功能:一个生产者P发送消息到一个队列Q,然后一个消费者C接收。

1.2 工作队列模式(多个消费者)

rabbitmq消费 java批量插入 rabbitmq 一次取多条_消息发送_02


功能:一个生产者,一个队列,多个消费者,每个消费者都从这一个队列中获取消息,它们获取到的消息是唯一的。

多个消费者是 轮询 的从队列中拿取消息。

假如消息队列中有10条消息,那么C1拿取的消息是0 2 4 6 8 ,C2拿到的是1 3 5 7 9。

1.3(广播模式/分裂模式)(只涉及交换器,不涉及路由key)

生产者把消息 扔给交换机(Exchange),交换机 给每个绑定的队列 都发送 同样的一份消息,不涉及routingKey

rabbitmq消费 java批量插入 rabbitmq 一次取多条_rabbitmq消费 java批量插入_03

1.4 路由模式Routing(即:直接模式Direct)涉及交换器固定路由key

rabbitmq消费 java批量插入 rabbitmq 一次取多条_Routing_04

说明:
①生产者 把指定了路由key的消息 扔给交换机 ;(即:消息的路由key 就指明了这个消息会路由到哪个队列中去)
②交换机根据消息的路由key 把消息路由到 满足路由规则的消息队列Queue中去。

1.5 通配符路由模式/动态路由模式 Topics (涉及交换器路由key

相比于 路由模式,就是 就是多了个 通配符匹配,消费者接收消息更灵活。

rabbitmq消费 java批量插入 rabbitmq 一次取多条_rabbitmq消费 java批量插入_05

说明:
①生产者 把指定了路由key的消息 扔给交换机
②交换机根据消息的路由key 与绑定队列 的路由规则进行匹配,把消息 路由到 对应的队列中。

符号

  • *:只能匹配一个单词。如: lazy.* 可以匹配lazy.irs或者lazy.cor
  • #: 可以匹配多个. 隔开的单词。如: lazy.irs或者lazy.irs.cor

二、不同类型的消息发送姿势

rabbitmq消费 java批量插入 rabbitmq 一次取多条_rabbitmq消费 java批量插入_06