amqp 中是否可以获取未路由的消息?

Kyl*_*ngo 5 amqp rabbitmq node-amqp php-amqp

使用 RabbitMQ Web UI,当我发布到没有当前队列绑定的主题交换时,rabbitmq 表示消息已发布但尚未路由。

使用 amqp.node,当我将队列绑定到交换并开始使用“#”(全部)使用时,我没有得到任何东西。

我期待收到之前发布但未路由的消息。这可能吗?

Der*_*ley 6

我期待收到之前发布但未路由的消息。这可能吗?

这不是直接可能的。

如果消息没有被路由到任何地方,它就会消失在虚空中。如果您需要保留它,则必须将其路由到队列。无法获取先前发送到任何地方的消息并重新路由它。

您的解决方法选择非常有限。您必须始终确保消息被路由到队列。

如果您使用备用交换器(https://www.rabbitmq.com/ae.html ) 通过不同的交换器路由无处可去的消息,

当消息通过第一个交换机无处可去时,它将通过备用交换机。此时,您必须确保消息进入队列。

稍后,当您需要处理通过备用交换器的消息时,您将必须从当前所在的队列中读取该消息并通过正确的交换器重新发布它。