公众号merlinsea
TTL【time to live】介绍
消息的存活时间
消息如果在存活时间内没有被消费则会被broker清除,变为死信消息
rabbitmq中设置消息的ttl方式:
方式1: 单个消息设置ttl
方式2:整个队列设置ttl【使用居多】
死信队列介绍
用于存放死信消息的队列
哪些消息是死信消息呢?
1、消费者拒收消息(basic.reject/ basic.nack),并且没有重新入队 requeue=false。
2、消息在队列中未被消费,且超过队列或者消息本身的过期时间TTL(time-to-live) 。
3、队列中的消息达到最大容量,已经存放不了的消息。
死信交换机
Dead Letter Exchange(死信交换机,缩写:DLX)当消息成为死信后,会被重新发送到另一个交换机,这个交换机就是DLX死信交 换机,死信交换机后面绑定的队列就是死信队列。
死信队列的图示:
【普通队列】包括的参数:
核心:1、过期时间 2、死信交换机是哪个 3、重新指定的key是什么
延迟队列介绍
⼀种带有延迟功能的消息队列,Producer 将消息发送到消息队列 服务端,但并不期望这条消息⽴⻢投递,⽽是推迟到在当前时间点 之后的某⼀个时间投递到Consumer 进⾏消费,该消息即定时消息
延迟队列可以通过上面的死信队列来完成,只需要普通队列没有消费者进行监听即可做到定时消息的功能。