Rabbitmq-TTL过期时间
1、任意类型的交换机都可以作为死信队列,这里用的是direct路由模式。
2、过期队列:过期队列中的消息是可以转存到死信队列中的。
3、过期信息:队列不是过期队列,只是在队列中给消息设置了过期时间,此时的消息过期之后直接清除,过期信息不能写入死信队列中。
4、如果一个交换机绑定了多个队列,并且都设置了不同的过期时间时,此时的过期时间以最短的时间为准。
设置过期队列
消息发送者
package com.zhang.rabbitmq.springbootrabbitmqproducer.service;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.UUID;
/**
* ttl过期时间
*/
config配置类:交换机和过期队列的绑定
-
过期队列,也就是在队列中添加过期时间,其实也就是普通队列;(x-message-ttl)参数可以在页面中获取
![]()
package com.zhang.rabbitmq.springbootrabbitmqproducer.config;
import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.DirectExchange;
import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.HashMap;
import java.util.Map;
设置过期消息

package com.zhang.rabbitmq.springbootrabbitmqproducer.service;
import org.springframework.amqp.AmqpException;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessagePostProcessor;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.UUID;
/**
* 过期消息-消息生产者
*/
config配置类
package com.zhang.rabbitmq.springbootrabbitmqproducer.config;
import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.DirectExchange;
import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.HashMap;
import java.util.Map;
/**
* 过期队列-TTL-交换机和队列的绑定
*/
启动类


浙公网安备 33010602011771号