简单来说,就是普通队列中的消息符合某个条件时,会交由另一个交换机转移到另一个队列,这个队列就是死信队列,负责转移的交换机就是死信交换机。
以淘宝下订单为例,用户下订单时我们可以发送一个消息到队列中,并设置超时时间,当超过了超时时间用户仍未付款,则删除该订单。
模拟一下,这里我们写一下发送消息的接口和接收消息的Recevier
发送消息的接口
接收消息的Recevier
然后你就可以看到
顾名思义,也就是说消息到了队列之后不会立刻被处理,会等到指定时间之后才进行处理。
是不是有点眼熟?
咱们刚才利用死信队列做的事不就是这样吗!
当消息到达5秒之后,才进行删除订单操作。
死信队列结合过期时间也就实现了延迟队列。
遇到消息堆积问题,会导致内存占用过大,因此有了惰性队列。
存储到磁盘,第一个优点就是信息存储量更大了。但磁盘和内存之间的速度差异导致其效率有所降低。
简单记录一下,欢迎大家指正。