美文网首页
Exchange 详解

Exchange 详解

作者: qyfl | 来源:发表于2019-09-26 22:25 被阅读0次

Exchange: 接收消息,并根据路由键转发消息到所绑定的队列。

如下图所示的黄框部分

系统架构.png

交换机属性

  • Name:交换机名称。
  • Type:交换机类型。direct、topic、fanout 等等
  • Durability:是否需要持久化。true 为持久化
  • Auto Delete:当最后一个绑定到该交换机的队列被删除后,自动删除该交换机。
  • Internal:当前交换机是否为 RabbitMQ 内部使用。默认为 false。
  • Arguments:扩展参数,用于扩展 AMQP 协议制定化使用。

Direct 类型

所有发送到 Direct 类型的交换机中的数据转发到路由键指定的队列中。

例如:名为 "test_exchange" 的交换机下,名为 "test_route" 路由键绑定了名为 "test_q" 的队列。
那么在生产者在发送的时候,需要将 exchange 指定为 "test_exchange",routing key 指定为 "test_route"。才能将消息发送到 "test_q" 队列中。

Topic 类型

前提:

  • 每一个交换机都会通过路由键绑定队列。
  • 每一个队列绑定一个路由键。

Topic 类型就是队列绑定的路由键是模糊匹配的。
# 匹配一个或多个词
* 匹配一个词

示例:

  • 队列 A 绑定的路由键是 usa.#。队列 B 绑定的路由键是 #.weather
  • 那么生产者在发送的时候指定路由键为 usa.abc.efg,那么将会发送到 A 队列里。
  • 如果路由键为 abc.efg.weather 那么会发送到 B 队列里。

Fanout 类型

  • 这种类型的交换机不处理路由键,只是需要简单的将队列绑定到交换机上。
  • 发送到交换机的消息都会被转发到与该交换机所绑定的队列上
  • 在所有交换机中转发消息最快

相关文章

网友评论

      本文标题:Exchange 详解

      本文链接:https://www.haomeiwen.com/subject/frxquctx.html