跳至主内容
版本:4.3

交换到交换的绑定

概述

AMQP 0-9-1 中,queue.bind 方法将队列绑定到交换机,从而使消息(受各种条件限制)从交换机()流向队列(目标)。我们引入了 exchange.bind 方法,用于将一个交换机绑定到另一个交换机。该绑定的语义与“交换机到队列”的绑定完全相同:单向绑定,绑定键(binding keys)和交换机类型正常运作,但绑定的两个端点(源和目标)均为交换机。这允许创建更丰富的路由拓扑。请注意,exchange.bind 方法中的 source(源)和 destination(目标)字段反映了消息的流向:从源交换机流向目标交换机。

queue.bind 一样,可以在相同的绑定端点之间创建多个不同的绑定。我们在消息传递过程中会检测并消除循环,并确保在任何路由拓扑中,对于消息所路由到的每个队列,每个队列都将准确接收该消息的一个副本。声明为 auto-delete(自动删除)的交换机在所有绑定被移除后仍会被删除,无论这些绑定是连接到队列还是交换机。请注意,自动删除交换机仅在以该交换机为的绑定被移除时才会被删除:如果您添加了以该交换机为目标的交换机到交换机绑定,那么在移除这些绑定时,该交换机不会被自动删除。

Java 客户端示例

使用 Channel#exchangeBind 方法。以下示例将名为 "destination" 的交换机绑定到名为 "source" 的交换机,并使用路由键 "routingKey"

Channel ch = conn.createChannel();
ch.exchangeBind("destination", "source", "routingKey");

.NET 客户端示例

使用 IModel#ExchangeBind 方法。以下示例将名为 "destination" 的交换机绑定到名为 "source" 的交换机,并使用路由键 "routingKey"

var ch = conn.CreateModel();
ch.ExchangeBind("destination", "source", "routingKey");
© . This site is unofficial and not affiliated with VMware.