在生产者端实现
当消息到达存货时间后,还没有被消费,则会被自动清除
* 如果设置了消息的过期时间,也设置了队列的过期时间,它以时间短的为准
* 队列过期后,会将队列的所有的消息全部移除
* 消息过期后,只有消息在队列顶端,才会判断其是否过期(移除掉)
在rabbtitMQ客户端中设置
1 创建队列,并设置最大存活时间为10s
2 在Exchange页面,添加交换机
3 点击创建的交换机,绑定队列
4 在交换机里面发送消息
5 10s后自动清空
代码实现
生产者端实现
导入依赖
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>spring_rabbitmq_reliability_producer</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.1.10.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.amqp</groupId>
<artifactId>spring-rabbit</artifactId>
<version>2.2.6.RELEASE</version>
</dependency>
<dependency>
<groupId>junit</groupId>