在 RabbitMQ 中,可以通过 TTL(Time-To-Live,存活时间) 为消息或队列设置过期时间,消息过期后会被自动删除或转移到死信队列(Dead Letter Queue)。以下是详细的配置方式和应用场景:
一、TTL 的两种设置方式
1. 消息级别的 TTL
为单条消息设置独立的过期时间,每条消息的 TTL 可以不同。
配置方法:
在发送消息时,通过 expiration
属性设置(单位:毫秒)。
示例(Java 代码):
AMQP.BasicProperties properties = new AMQP.BasicProperties.Builder()
.expiration("60000") // 消息过期时间为 60 秒(60000 毫秒)
.build();
channel.basicPublish("exchange", "routingKey", properties, message.getBytes());
特点