Sender-selected Distribution

本文介绍了RabbitMQ如何通过特殊处理BCC和CC消息头来实现AMQP0-9-1协议下发送者对消息接收者的非直接指定。这个扩展允许设置多个接收地址,但BCC提供了额外的保密性。任何支持AMQP0-9-1的客户端都可以利用这个功能,尽管它违反了协议规范并可能影响性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

发送者选择性发送

AMQP 0-9-1路由逻辑没有为消息生产者提供选择指定接收者的方式,除非接收者绑定其队列到目标交换机。

RabbitMQ 代理以特殊方式处理 "抄送 "和 "密送 "消息头,以克服这一限制。这相当于在电子邮件的 "抄送 "或 "密送 "字段中输入多个收件人。

若存在与 "CC "和 "BCC "headers keys相关的值,将被添加到路由键中,消息会被路由到匹配basic.publish中路由键的目的地,也会路由到匹配 "CC "和 "BCC "headers中路由键的目的地。CC "和 "BCC "值的类型必须是 longstr 数组,这些键区分大小写。若headers不包含 "CC "或 "BCC "键,则此扩展无效。

BCC "键和值将在发送前从报文中删除,从而为消费者提供一定的保密性。这项功能违背了 AMQP 0-9-1 规范,该规范禁止对消息(包括报头)进行任何修改。该功能会对性能造成一点影响。

该扩展与所使用的客户端库无关。任何能在发布时设置报头值的 AMQP 0-9-1 客户端都能使用该扩展。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值