我如何找出哪个交换机最后路由了一条消息?

问题描述 投票:1回答:1

我们打算建立一种交换到交换绑定的单向网络。我们的要求是将消息采用的路由附加到其标头,但似乎无法找出哪个交换最后处理了消息。

我已经尝试使用跟踪功能查找信息,并且还存在一个预订内部plugin事件的basic.publish。但是,所有这些方式都给了我交换[[of first entry。

我什至查看了Rabbitmq服务器的源代码,并且似乎路由功能内部没有可能的扩展点(例如,参见headers exchange routing)。我不是Erlang开发人员,所以也许有

Erlang方法的拦截/扩展功能要被调用?

示例

+---------+ | | | POE | | | +--+--+---+ | | +-------+ | | +-------+ | | | | | | | EX1 +---+ +----+ EX2 | | | | | +--+----+ +---+---+ | | | | | | +--+----+ +---+---+ | | | | | QU1 | | QU2 | | | | | +-------+ +-------+
对于以QU2结尾的消息,我们希望有这样的标题字段:

{... x-route, ["POE", "EX2"] }

rabbitmq erlang
1个回答
0
投票
这可能可以通过RabbitMQ插件来完成,但是很难做到:通道拦截器必须有效地完成路由的一部分才能确定“最后一次”交换。也可能有多个“最后”交换。


[NOTE: RabbitMQ团队监视rabbitmq-users mailing list,并且有时仅在StackOverflow上回答问题。

© www.soinside.com 2019 - 2024. All rights reserved.