微服务 教程
1085个小节阅读:196.5k
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
RabbitMQ可以设置消息的存活时间(Time To Live,简称TTL),当消息到达存活时间后还没有被消费,会被移出队列。RabbitMQ可以对队列的所有消息设置存活时间,也可以对某条消息设置存活时间。
在创建队列时设置其存活时间:
xxxxxxxxxx
public class RabbitConfig2 {
private final String EXCHANGE_NAME="my_topic_exchange2";
private final String QUEUE_NAME="my_queue2";
// 1.创建交换机
"bootExchange2") (
public Exchange getExchange2(){
return ExchangeBuilder
.topicExchange(EXCHANGE_NAME)
.durable(true).
build();
}
// 2.创建队列
"bootQueue2") (
public Queue getMessageQueue2(){
return QueueBuilder
.durable(QUEUE_NAME)
.ttl(10000) //队列的每条消息存活10s
.build();
}
// 3.将队列绑定到交换机
public Binding bindMessageQueue2( ("bootExchange2") Exchange exchange, ("bootQueue2") Queue queue){
return BindingBuilder.bind(queue).to(exchange).with("my_routing").noargs();
}
}
生产者批量生产消息,测试存活时间
xxxxxxxxxx
public void testSendBatch2() throws InterruptedException {
// 发送十条消息
for (int i = 0; i < 10; i++) {
rabbitTemplate.convertAndSend("my_topic_exchange2", "my_routing", "send message..."+i);
}
}
实时效果反馈
1. 在RabbitMQ中,当消息到达存活时间后还没有被消费,则
A 会被自动消费
B 会被自动清除
C 会被持久化
D 没有任何效果
2. 以下关于RabbitMQ的说法,正确的是
A 只能对队列的所有消息设置存活时间
B 只能对某条消息设置存活时间
C 可以对队列的所有消息设置存活时间,也可以对某条消息设置存活时间
D 不能设置存活时间
答案
1=>B 2=>C