RabbitMQ 可见性超时

问题描述 投票:0回答:3

RabbitMQ 队列是否具有类似 AWS SQS 的功能 - “消息可见性超时”?

来自 AWS SQS 文档:

“一旦 Amazon SQS 返回消息,可见性超时时钟就会开始计时。在此期间,组件会处理并删除消息。但是,如果组件在删除消息之前失败,会发生什么情况?如果您的系统没有针对该消息调用 DeleteMessage在可见性超时到期之前,消息再次对系统中组件发出的 ReceiveMessage 调用可见,并且将再次接收该消息”

amazon-web-services queue rabbitmq amazon-sqs
3个回答
7
投票

我相信您正在寻找 RabbitMQ 手动确认功能。此功能允许您从队列中获取消息,并在收到消息后确认它们。如果在此过程中发生某些情况,则该消息将在一定时间后再次在队列中可用。此外,在您收到消息直到您确认消息之前,该消息无法供其他消费者使用。

我认为这与 SQS 的消息可见性超时行为相同。


4
投票

没有任何消息超时;仅当工作连接断开时,RabbitMQ 才会重新传送消息。即使处理消息需要非常非常长的时间也没关系。没有任何消息超时;仅当工作连接断开时,RabbitMQ 才会重新传送消息。即使处理一条消息需要非常非常长的时间也没关系。


0
投票

我相信可以找到答案@MQ与SQS的讨论通常这被认为是MQ的一个功能(它可以处理缓慢的消费者),但是使用“slowConsumerStrategy”和“abortSlowConsumerStrategy”的目标策略可能会解决你的问题问题。更完整的解释可以在redhat的MQ文档中找到,我想我们必须希望rabbitMQ和AmazonMQ都支持该策略。

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