SpringBoot+RabbitMQ实现延迟队列

本文介绍了如何利用SpringBoot和RabbitMQ通过TTL+死信队列组合实现延迟队列功能,用于场景如订单超时处理、新用户注册后的延迟操作。详细步骤包括添加依赖、配置交换机和队列、发送与消费消息。
摘要由CSDN通过智能技术生成

一、什么是延迟队列?

先来说一下什么是延迟队列,延迟队列就是消息进入队列之后不会立即被消息,只有达到指定时间后,才会被消费.

在这里插入图片描述
常见需求: 1、在网上商城下单后,30分钟未支付,取消订单,回滚库存;

​ 2、新用户注册成功7天后,发送短信.

实现方法: 1、定时器 2、延迟队列

但RabbitMQ未提供延迟队列功能,但是可以使用**TTL+死信队列(DLX)**组合(利用他们的特性)实现延迟队列的效果.

在这里插入图片描述

二、SpringBoot+RabbitMQ实现延迟队列

在pom中导入以下依赖
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
        </dependency>
在生产者工程中,创建一个配置类,声明交换机与队列的绑定关系
import org.springframework.amqp.core.*;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;


@Configuration
public class TTLDLXConfig {
   

    //死信交换机的名称;
    public static final String DLX_EXCHANGE_NAME = "dlx_boot_exchange";
    //死信队列名称;
    public static final String DLX_QUEUE_NAME = "dlx_boot_queue";

    //普通交换机的名称;
    public static final String TEST_EXCHANGE_NAME 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值