RabbitMQ-TTL消息存活时间

RabbitMQ-TTL消息存活时间

文章目录

TTL是什么?TTL的测试小结

TTL是什么?

TTL全称Time To Live(存活时间/过期时间) 。

当消息到达存活时间后,还没有被消费,会被自动清除。

RabbitMQ可以对消息设置过期时间,也可以对整个队列(Queue)设置过期时间。

TTl:消息的存活时间有两种

1.队列统一过期

2.消息单独过期

若设置了队列过期时间,也设置了消息过期时间,以时间短的为准。 若队列过期后,会将队列中所有消息移除。

只有消息在队列顶端时(即将被消费时),才会判断它是否过期(被移除掉),以提高轮询效率。

例如:10条消息在队列中,在队列中间有条5s后就会过期的消息M,而队列过期时间为100s,即使过了5s后,在还未消费到消息M前,M都不会被移除掉,不过该过期的还是过期,轮到消费M时 判断其是否过期,过期了就移除掉

TTL的测试

工程结构跟之前的一样:

spring-rabbitmq-producer.xml中相关配置:

port="${rabbitmq.port}"

username="${rabbitmq.username}"

password="${rabbitmq.password}"

virtual-host="${rabbitmq.virtual-host}"

publisher-confirms="true"

publisher-returns="true"

/>

ProducerTest中的测试类:

/**

* ttl:消息的存活时间

* 1.队列统一过期

* 2.消息单独过期

* 若设置了队列过期时间,也设置了消息过期时间,以时间短的为准

* 若队列过期后,会将队列中所有消息移除

* 只有消息在队列顶端时(即将被消费时),才会判断它是否过期(被移除掉),以提高轮询效率

* 如10条消息在队列中,在队列中间有条5s后就会过期的消息M,而队列过期时间为100s,即使

* 过了5s后,在还未消费到消息M前,M都不会被移除掉,不过该过期的还是过期,轮到消费M时

* 判断其是否过期,过期了就移除掉

*/

@Test

public void testTtl() throws InterruptedException {

//队列统一过期

// for (int i = 0; i < 10; i++) {

// rabbitTemplate.convertAndSend("test_exchange_ttl","ttl.oh","test ttl..." + i);

// }

//消息单独过期

//消息后处理对象MessagePostProcessor

MessagePostProcessor messagePostProcessor = new MessagePostProcessor() {

public Message postProcessMessage(Message message) throws AmqpException {

message.getMessageProperties().setExpiration("5000");//设置过期时间

return message;

}

};

//传入消息后处理对象设置参数

rabbitTemplate.convertAndSend("test_exchange_ttl","ttl.oh","test ttl...",messagePostProcessor);

}

小结

设置队列过期时间使用参数: x-message-ttl,单位: ms(毫秒),会对整个队列消息统一过期。设置消息过期时间使用参数: expiration。单位: ms(毫秒),当该消息在队列头部时(消费时),会单独判断这—消息是否过期。如果两者都进行了设置,以时间短的为准。

你可能也喜欢

kiang是什么意思广东话(潮汕话kiang是什么梗)
怎样获得免费office365

kiang是什么意思广东话(潮汕话kiang是什么梗)

📅 07-31 👀 8146
计算机硬盘哒哒响,教你轻松解决硬盘异响(咔咔或者嗒嗒声)
本科毕业论文参考文献要多少?建议20-50篇,关键看质量
beat365手机版官方网站正规

本科毕业论文参考文献要多少?建议20-50篇,关键看质量

📅 08-01 👀 298
一加 13 参数规格
365bet官网平台网址

一加 13 参数规格

📅 07-19 👀 1427
魔兽世界怀旧服秘法围裙获取方法
怎样获得免费office365

魔兽世界怀旧服秘法围裙获取方法

📅 06-28 👀 4386
松下、博朗负离子吹风机哪个更值得买?
beat365手机版官方网站正规

松下、博朗负离子吹风机哪个更值得买?

📅 08-12 👀 6137