【发布时间】:2023-03-22 03:35:01
【问题描述】:
对于 Exchange 到 Exchange 绑定定义
public class RabbitRecieveTest implements MessageListener {
@Override
public void onMessage(Message message) {
String firstExchange = message.getMessageProperties().getReceivedExchange();
}
}
返回第一个交换名称。
场景:
消息发布到 firstExchangesecondExchangesomeQueue
我想获得 secondExchange 的名称。有什么办法吗?
【问题讨论】:
-
可能不是,因为消息只知道它最初发送到哪个交易所。我不认为交易所本身会添加标头信息。话虽如此,除非您有 3 个交换,否则您已经知道在第二个交换的情况下它来自哪个交换,因为您已经为队列创建了与它的绑定。所有这些都必须在消费者端完成。
-
明白。我有超过3次交流。在完美的世界中,我想知道消息是如何路由的——它是如何到达最终目的地的。
-
我不认为你可以,但不是 100%。也许您可以使用添加标题信息的自定义交换
标签: spring rabbitmq message-listener