RabbitMQ高级特性-TTL队列/消息

本文详细介绍了RabbitMQ的TTL(Time To Live)特性,包括消息和队列的过期时间设置。通过代码演示,展示了如何设置队列超时时间为10秒,以及生产者如何发送带有不同超时时间的消息。在运行过程中,观察到5秒超时的消息先被清除,随后10秒超时的消息也被清理。此外,还提供了相关的RabbitMQ高级特性和整合教程的链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TTL队列/消息

  • TTL是Time To Live的缩写, 也就是生存时间
  • RabbitMQ支持消息的过期时间, 在消息发送时可以进行指定
  • RabbitMQ支持队列的过期时间, 从消息入队列开始计算, 只要超过了队列的超时时间配置, 那么消息会自动清除

代码演示

  • 消费者中设置队列超时时间为10秒, 启动之后关闭消费者
  • 生产者发送两条消息, 一条消息不设置超时时间, 一条消息设置5秒后超时
  • 启动生产者之后, 监控RabbitMQ控制台, 发现5秒后设置了消息超时时间的消息先超时清除, 然后10秒后另外一条消息也超时清除
package com.qiyexue.api.ttl;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.QueueingConsumer;
import com.rabbitmq.client.QueueingConsumer.Delivery;

import java.util.HashMap;
import java.util.Map;

/**
 * 消费者, 设置队列过期时间
 *
 * @author 七夜雪
 * @date 2018-12-13 20:57
 */
public class Consumer {
   

    public static void main(String[] args) throws Exception {
   
        // 1. 创建连接工厂, 设置属性
        ConnectionFactory factory = new ConnectionFactory();
        factory.setHost("192.168.72.138");
        factory.setPort(5672);
        factory.setVirtualHost("/")
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值