RabbitMQ-dlx死信队列

本文介绍了RabbitMQ的死信队列(DLX)概念,当消息因达到队列长度限制、消费者拒绝消费或消息过期等原因成为死信时,会路由到DLX。通过配置x-dead-letter-exchange和x-dead-letter-routing-key参数,可以实现消息重定向。测试过程展示了如何设置和使用DLX。
摘要由CSDN通过智能技术生成

什么是死信队列?

死信队列,英文缩写:DLX 。Dead LetterExchange(死信交换机),当消息成为Dead message后,可以被重新发送到另一个交换机,这个交换机就是DLX。
在这里插入图片描述

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

  • 1.队列消息长度到达限制;
  • ⒉消费者拒接消费消息,basicNack/basicReject,并且不把消息重新放入原目标队列,requeue=false;
  • 3.原队列存在消息过期设置,消息到达超时时间未被消费;

DLX死信队列 的测试

队列绑定死信交换机:
给队列设置参数: x-dead-letter-exchange和x-dead-letter-routing-key
在这里插入图片描述

代码:
在这里插入图片描述
spring-rabbitmq-producer.xml中相关配置:

    <!--加载配置文件-->
    <context:property-placeholder location="classpath:rabbitmq.properties"/>

    <!-- 定义rabbitmq connectionFactory -->
    <rabbit:connection-factory id="connectionFactory" host="${rabbitmq.host}"
                               port="${rabbitmq.port}"
                               username="${rabbitmq.username}"
                               password="${rabbitmq.password}"
                               virtual-host="${rabbitmq.virtual-host}"
                               publisher-confirms="true"
                               publisher-returns="true"
    />
    <!--定义管理交换机、队列-->
    <rabbit:admin connection-factory="connectionFactory"/>

    <!--定义rabbitTemplate对象操作可以在代码中方便发送消息-->
    <rabbit:template id=
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值