目录
过期时间TTL
TTL表示可以对消息设置预期时间,在这个时间内的消息可以被消费者接收获取,过了之后消息自动被删除。RabbitMQ设置TTL有两种方式~
- 通过队列属性进行设置,队列中的所有消息都有相同的过期时间
- 对消息进行单独设置,每条消息TTL可以不同
如果同时使用上述两种方法,则消息过期时间以两者之间的TTL较小数值为准。消息在队列的生存时间一旦超过了TTL值,就称为dead message并被投递到死信队列,消费者将无法再收到该消息
如果不设置TTL代表此消息永不过期。如果TTL设置为0代表除非此时可以直接将消息投递到消费者,否则该消息被立刻丢弃
死信队列
DLX(Dead-Letter-Exchange)即死信交换机。当消息在一个队列中变成dead message后,它会被重新发送到另一个交换机,这个交换机就是DLX,绑定DLX的队列称之为死信队列。
消息变成死信有三种原因:消息被拒绝、消息过期、消息队