需求背景之为什么要有超时关单
原因一:
第三方支付平台的支付连接都是有时效性,创建订单后,需要在一定的时间内支付完成, 比如微信支付、支付宝支付等。当然也可以不关闭订单,做订单二次支付的操作,但业务链路会更加复杂,所以一般会直接关闭
原因二:
电商业务里面还会涉及到商品库存的锁定和释放
所以多数订单业务都是会有这个功能,那如何设计呢?
RabbitMQ死信队列-延迟消息知识点回顾
什么是RabbitMQ的死信队列
没有被及时消费的消息存放的队列
什么是rabbitmq的死信交换机
Dead Letter Exchange(死信交换机,缩写:DLX)当消息成为死信后,会被重新发送到另一个交换机,这个交换机就是DLX死信交换机
消息有哪几种情况成为死信
消费者拒收消息(basic.reject/ basic.nack),并且没有重新入队 requeue=false 消息在队列中未被消费,且超过队列或者消息本身的过期时间TTL(time-to-live) 队列的消息长度达到极限 结果:消息成为死信后,如果该队列绑定了死信交换机,则消息会被死信交换机重新路