RabbitMQ技术咨询:能否向多交换机/多队列发送单条消息?
RabbitMQ 问题解答
问题1:是否可以向多个交换机发送单条消息?
可以。你只需对同一条消息对象多次调用basic_publish方法,每次指定不同的交换机名称即可,无需重复创建消息实例。示例代码如下:
$msg = new AMQPMessage('text'); // 发送到第一个交换机 $channel->basic_publish($msg, 'exchange_1', 'routing_key_1'); // 发送到第二个交换机 $channel->basic_publish($msg, 'exchange_2', 'routing_key_2');
问题2:使用advert.*路由键能否一次性向两个队列发送消息?
可以。因为你使用的是TOPIC类型交换机,它的路由键匹配规则中:
*用于匹配单个单词(单词以.作为分隔符)- 你的两个队列分别绑定了
advert.create和advert.edit路由键,这两个路由键完全符合advert.*的匹配模式
所以执行你提供的代码时,adverts交换机会自动将消息路由到adverts_create和adverts_edit两个队列,实现一次性给多个队列发送消息的效果。
内容的提问来源于stack exchange,提问作者Basil
相关产品推荐
相关产品推荐

