首页 文章

RabbitMQ可见性超时

提问于
浏览
6

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

从AWS SQS文档:

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

谢谢!

3 回答

  • 4

    我相信您正在寻找RabbitMQ手动确认功能 . 此功能允许您从队列中获取消息,一旦您收到消息,就可以获取消息 . 如果在此过程的中间发生某些事情,则在一段时间后该消息将再次在队列中可用 . 此外,与此同时,由于您在收到消息之前收到消息,因此消息不可供其他消费者使用 .

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

  • 0

    没有任何消息超时;只有当工作者连接死亡时,RabbitMQ才会重新传递消息 . 即使处理消息需要非常长的时间也没关系 . 没有任何消息超时;只有当工作者连接死亡时,RabbitMQ才会重新传递消息 . 即使处理消息需要非常长的时间,也没关系 .

  • 1

    我相信可以找到答案@ a discussion of MQ vs SQS通常这被认为是MQ的一个特性(它可以处理缓慢的消费者),但使用"slowConsumerStrategy"和"abortSlowConsumerStrategy"的目标策略可能会解决您的问题 . 更全面的解释可以在redhat's MQ documentation找到,我想我们不得不希望rabbitMQ和AmazonMQ都支持这种策略 .

相关问题