【java】【springboot】队列涉及订单关闭数据返还异常
一、什么是RabbitMQ死信队列
RabbitMQ死信队列(Dead-Letter Exchange,简称DLX)是一种特殊类型的交换机,用于处理在队列中无法被消费的消息。当消息无法被消费时,它会被转发到死信队列中,以便进一步处理。
在RabbitMQ中,死信队列通常用于处理以下情况:
消息无法被消费者处理:例如,如果消费者崩溃或消息的格式不正确,则无法处理消息。此时,消息将被发送到死信队列进行进一步处理。
消息的优先级较低:如果消息的优先级较低,则可能无法在队列中得到及时处理。在这种情况下,消息也会被发送到死信队列中,以确保它最终被处理。
要使用死信队列,需要创建一个普通的交换机和一个普通的队列,然后创建一个死信队列并将其绑定到普通队列上。当消息无法被消费时,它将被发送到死信队列中。
二、RabbitMQ关单逻辑
1. 流程图

订单创建成功后, 发送消息给order-event-exchange交换机,采用路由键order.create.order
order-event-exchange交换机将消息转发给order.delay.queue队列,队列保存时间为30分钟,如果没有消费,则再将消息路由到order-event-exchan
