死信:指消息在某些情况下无法被正常消费,例如消息超时、队列满或者达到最大重试次数。这种消息称为死信。
死信队列:当消息无法被正常消费时,会被重新发送到另一个队列(称为死信队列)中,以便进行特殊处理。
死信路由:在 RabbitMQ 中,死信队列是通过路由将消息转发到死信队列的。这条路由就称为死信路由。好像有点绕,用人话来说:“负责转发死信的路由叫做死信路由”。还听不懂?『死信路由就是普通的交换机,只不过会把死信投递给它而已』
延迟队列:延迟队列是指消息在发送到队列之前,会经过一段延迟时间后才能进入队列,以实现延迟消费的目的。
在 RabbitMQ 中实现延迟队列的方式并不是真正意义上的延迟队列,而是通过将消息存储在队列中,并设置一个延迟时间,在延迟时间到达之后才将消息转发到目标队列中进行消费。这种方式的缺点是,如果 RabbitMQ 服务器重启或者意外关闭,则延迟时间会重新开始计算。