首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置RabbitMQ的重发时间

如何设置RabbitMQ的重发时间
EN

Stack Overflow用户
提问于 2022-08-13 12:56:34
回答 1查看 154关注 0票数 0

我试图了解如何设置basic.nacked消息的重发时间。一些重要的信息是,我使用的仲裁队列的重发量为5次。考虑以下情况:

现在发生了什么:

  1. 生产者发送消息:消息X
  2. 使用者处理消息X并遇到错误,在错误处理程序中我使用basic.nack()
  3. 消息是对原始队列的不满。使用者立即再次处理该任务。
  4. 这个过程重复,直到重发数量已经达到,然后它是死字母。

我真正想要的:

我希望请求的消息在被消费者再次处理之前等待几秒钟(3-5秒)。我之所以想这样做,是因为我使用的是OCC &在某些情况下,延迟消息重新传递可以解决一致性问题。(对于那些想知道为什么以上帝的名义我需要这个的人)

我能够用NATS流服务器实现这一点,但我不知道如何用rabbitMQ实现它。

附加信息:我使用amqplib (类型抄本)作为客户端,预取设置为10全局。我正在为兔子使用AWS作为我的rabbitMQ主机

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-15 07:37:42

据我所知,没有一种方法可以将RabbitMQ延迟消息插件添加到AWS。您可以:

  • 创建一个新的dead_letter_queuex-message-ttl选项,并提供所需的值(3-5秒)
  • 对于此dead_letter_queue死信交换将是您的原始交换。
  • 创建与dead_letter_exchange连接的dead_letter_queue

工作流程:

  1. 消费者nack信息
  2. 消息转到dead_letter_exchange
  3. dead_letter_exchangedead_letter_queue
  4. dead_letter_queue中消息等待x-message-ttl时间
  5. 消息标记为死,然后转到原始交换(然后到原始队列)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73344478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档