如果当前消息没有任何绑定队列,RabbitMQ 将消息重定向到另一个交换

问题描述

如果当前交换没有任何绑定队列,有没有办法配置一些策略来将消息从一个交换重定向到另一个交换?

我遇到了一种情况,即重启后 RabbitMQ 松动了一些绑定并且我的消息消失了。

解决方法

是的,该功能称为 Alternate Exchanges,其工作方式如下:

  • 您设置了一个与交换 A 匹配的“策略”,键为“alternate-exchange”,值命名交换 B。或者,您可以在创建交换时直接将其设置为属性。
  • 任何路由到交换机 A 且不匹配任何绑定的消息都将路由到交换机 B。
  • 交易所 B 以正常方式处理它,甚至可以拥有自己的备用交易所。