跳到主要内容
版本:4.1

发送者选择的分发

AMQP 发布者可以选择发送带有多个路由键的消息。在路由过程中,RabbitMQ 将考虑消息头中提供的所有路由键。

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

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

在消息中包含多个路由键可以将其路由到更多队列,具体取决于队列如何绑定到交换机。如果消息被路由到至少一个队列并且所有队列都确认接收,则 RabbitMQ 会以accepted结果结算消息。换句话说,即使只有一部分路由键成功路由,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” 键和值将在交付前从消息中删除,以确保消费者之间具有一定程度的机密性。

© . All rights reserved.