RabbitMQ交换机类型!!!

常用的交换机有以下三种,因为消费者是从队列获取信息的,队列是绑定交换机的,所以对应的消息推送/接收模式也会有以下几种:

1、Direct Exchange

直连型交换机,根据消息携带的路由键将消息投递给对应队列。

大致流程,有一个队列绑定到一个直连交换机上,同时赋予一个路由键 routing key 。

然后当一个消息携带着路由值为abc,这个消息通过生产者发送给交换机时,交换机就会根据这个路由值abc去寻找绑定值的队列。

2、Fanout Exchange

扇型(广播)交换机,这个交换机没有路由键概念,就算你绑了路由键也是无视的。 这个交换机在接收到消息后,会直接转发到绑定到它上面的所有队列。

3、Topic Exchange

主题交换机,这个交换机其实跟直连交换机流程差不多,但是它的特点就是在它的路由键和绑定键之间是有规则的。

简单地介绍下规则:

* (星号) 用来表示一个单词 (必须出现的)

# (井号) 用来表示任意数量(零个或多个)单词

// *  代表两点之间一个占位单词  // #  代表后面所有,匹配所有

通配的绑定键是跟队列进行绑定的,举个小例子

队列Q1 绑定键为 *.TT.* 队列Q2绑定键为 TT.#

如果一条消息携带的路由键为 A.TT.B,那么队列Q1将会收到;

如果一条消息携带的路由键为TT.AA.BB,那么队列Q2将会收到;

当一个队列的绑定键为 "#"(井号) 的时候,这个队列将会无视消息的路由键,接收所有的消息。

当 * (星号) 和 # (井号) 这两个特殊字符都未在绑定键中出现的时候,此时主题交换机就拥有的直连交换机的行为。

如果只有 # ,它就实现了扇形交换机的功能。

所以主题交换机也就实现了扇形交换机的功能,和直连交换机的功能

相关推荐

  1. RabbitMQ交换机类型!!!

    2024-04-07 21:40:07       47 阅读
  2. RabbitMQ交换机

    2024-04-07 21:40:07       52 阅读
  3. RabbitMQ交换机

    2024-04-07 21:40:07       31 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-07 21:40:07       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-07 21:40:07       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-07 21:40:07       82 阅读
  4. Python语言-面向对象

    2024-04-07 21:40:07       91 阅读

热门阅读

  1. 投资回报率ROI是什么意思?

    2024-04-07 21:40:07       33 阅读
  2. 《牛客》-C小红的字符串构造

    2024-04-07 21:40:07       40 阅读
  3. jq的跳转方法有哪些(补)

    2024-04-07 21:40:07       34 阅读
  4. 小朋友排队(归并排序c++)

    2024-04-07 21:40:07       40 阅读
  5. 笔试:4.6美团笔试(硬件开发方向)

    2024-04-07 21:40:07       36 阅读
  6. 第一章:CSS基础入门

    2024-04-07 21:40:07       35 阅读
  7. LeetCode 416. 分割等和子集

    2024-04-07 21:40:07       38 阅读
  8. LeetCode-零钱兑换II

    2024-04-07 21:40:07       39 阅读