【问题标题】:[RabbitMQ][Spring] How do I get access to the final exchange name?[RabbitMQ][Spring] 如何获得最终的交易所名称?
【发布时间】: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


【解决方案1】:

不,无法获取此信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-04
    • 2015-10-07
    相关资源
    最近更新 更多