延迟队列和死信队列

本文介绍了如何在RabbitMQ中配置和使用死信队列及延迟队列。通过设置队列参数x-dead-letter-exchange和x-dead-letter-routing-key,将消息路由到死信交换机。同时,详细阐述了延迟队列的实现,包括在主启动类中发送信息到交换机,并启动消费者进行测试。经过5秒的等待,确认消息已被消费者成功消费。

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

1. 死信队列
2. 延迟队列

1. 死信队列

死信队列,英文缩写:DLX  。Dead Letter Exchange(死信交换机),
当消息成为Dead message后,可以被重新发送到另一个交换机,这个交换机就是DLX。

在这里插入图片描述

消息成为死信的三种情况:

1. 队列消息长度到达限制;

2. 消费者拒接消费消息,basicNack/basicReject,并且不把消息重新放入原目标队列,requeue=false;

3. 原队列存在消息过期设置,消息到达超时时间未被消费;

队列绑定死信交换机:

给队列设置参数: x-dead-letter-exchange 和 x-dead-letter-routing-key

在这里插入图片描述

创建交换机

package com.fzj.config;

import org.springframework.amqp.core.*;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class RabbitConfig {
   
   
    private final String EXCHANGE="exchange";
    private final String DEAD_EXCHANGE="dead_exchange";
    private final String QUEUE="queue";
    private final String DEAD_QUEUE="dead_queue";


    @Bean
    public Queue queue(){
   
   
        return QueueBuilder
                .durable(QUEUE)
                .withArgument("x-message-ttl",
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值