跳至主内容
版本:4.2

发件人选择的路由

AMQP 发布者可以选择使用具有多个路由键的消息。在路由过程中,RabbitMQ 会将消息头中提供的所有路由键都考虑在内。

例如,如果 AMQP 发布者将带有多个路由键的消息发送到 默认交换器,则每个路由键代表一个队列名称,RabbitMQ 会将消息路由到所有指定的队列。

在另一个例子中,如果 AMQP 发布者将带有多个路由键的消息发送到 主题交换器,则每个路由键代表一个主题。

消息中包含多个路由键可以根据队列如何绑定到交换器,将其路由到更多的队列。如果消息至少路由到一个队列并且所有队列都确认收到,RabbitMQ 将以 已接受 的结果来处理该消息。换句话说,即使只有一部分路由键成功路由,RabbitMQ 也会接受该消息。

AMQP 1.0

要在 AMQP 1.0 中使用多个路由键,发布者需要设置一个带有键 x-cc消息注解,其值为一个 列表,列表中的元素为 字符串。列表中的每个字符串代表一个额外的路由键。

这些“CC”路由键除了在 AMQP 地址 字符串中提供的路由键之外,还会被使用。

AMQP 0.9.1

要在 AMQP 0.9.1 中使用多个路由键,发布者需要设置“CC”和“BCC”头键。这类似于在电子邮件的“CC”或“BCC”字段中指定多个收件人。“CC”和“BCC”的值必须是字符串数组(longstr 值)。

消息将使用作为 basic.publish 方法参数提供的路由键以及“CC”和“BCC”头中提供的路由键进行路由。“BCC”键和值将在传递给消费者之前从消息中删除,以确保消费者之间一定程度的机密性。

© . This site is unofficial and not affiliated with VMware.