10

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

从 AWS SQS 文档:

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

谢谢!

4

3 回答 3

5

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

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

于 2013-10-17T01:14:15.360 回答
3

没有任何消息超时;RabbitMQ 只会在工作连接断开时重新传递消息。即使处理消息需要非常非常长的时间也没关系。没有任何消息超时;RabbitMQ 只会在工作连接断开时重新传递消息。即使处理消息需要非常非常长的时间也没关系。

于 2016-10-04T17:59:05.930 回答
0

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

于 2018-11-26T23:09:34.977 回答