交换机到交换机绑定
概述
在 AMQP 0-9-1 中,queue.bind
方法将队列绑定到交换机,以便消息(根据各种条件)从交换机(源)流向队列(目标)。我们引入了 exchange.bind
方法,该方法将一个交换机绑定到另一个交换机。绑定在语义上与交换机到队列绑定相同:单向的,绑定键和交换机类型正常工作,但绑定的两个端点(源和目标)都是交换机。这允许创建更丰富的路由拓扑。请注意 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");