用RabbitMQ文件夹重试

当绑定器内启用重试时,监听器容器线程会暂停,持续设置后退时间。 当需要对单个消费者进行严格订购时,这一点可能很重要。然而,在其他使用场景中,它会阻止该线程中处理其他消息。 使用活页夹重试的另一种方法是设置死符队列(DLQ)中的死字母,同时在DLQ本身设置死符配置。 有关此处讨论的属性的更多信息,请参见“RabbitMQ Binder Properties”。 您可以使用以下示例配置来启用此功能:spring-doc.cadn.net.cn

  • 设置autoBindDlqtrue. 活页夹会创建一个DLQ。 可选地,你可以在deadLetterQueueName.spring-doc.cadn.net.cn

  • 设置dlqTtl回到你想在两次重新送货之间等待的退货时间。spring-doc.cadn.net.cn

  • 设置dlqDeadLetterExchange(死信交换)回到默认交换。 DLQ的过期消息会被路由到原始队列,因为默认情况下deadLetterRoutingKey是队列名称(目的地.group). 设置为默认交换是通过将属性设置为无值来实现的,如下一个示例所示。spring-doc.cadn.net.cn

要强制消息为死字母,可以抛出AmqpRejectAndDontRequeueException或集合requeueRejectedfalse(默认)并抛出任意例外。spring-doc.cadn.net.cn

循环是无尽的,这对瞬态问题来说没问题,但尝试几次后你可能想放弃。 幸运的是,RabbitMQ提供了X-死亡头部,可以让你判断已经发生了多少个周期。spring-doc.cadn.net.cn

放弃后要确认消息,可以抛出ImmediateAcknowledgeAmqpException.spring-doc.cadn.net.cn