rabbitmq-死信队列(死信交换机)(十)

本文介绍了RabbitMQ中消息成为死信的条件,包括队列达到最大长度、消息过期未消费以及消费者拒收消息。通过XML配置设置死信交换机,并通过测试演示了消息过期时间、队列长度限制和消费者拒收消息的情况。总结指出,死信交换机和队列与普通队列无异,主要作用在于处理死信消息的路由。
摘要由CSDN通过智能技术生成

在这里插入图片描述

消息进入死信队列的条件

  • 队列消息数量到达限制;比如给队列最大只能存储10条消息,当第11条消息进来的时候存不下了,第11条消息就被称为死信
  • 消费者拒接消费消息,basicNack/basicReject,并且不把消息重新放入原目标队列,requeue=false
  • 原队列存在消息过期设置,消息到达超时时间未被消费;

队列绑定死信交换机(重点,也就是在正常队列里设置者两个参数)
给队列设置参数: x-dead-letter-exchange 和 x-dead-letter-routing-key

xml配置死信交换机

<!--
       死信队列:
           1. 声明正常的队列(test_queue_dlx)和交换机(test_exchange_dlx)
           2. 声明死信队列(queue_dlx)和死信交换机(exchange_dlx)
           3. 正常队列绑定死信交换机
               设置两个参数:
                   * x-dead-letter-exchange:死信交换机名称
                   * x-dead-letter-routing-key:发送给死信交换机的routingkey
   -->

    <!--
        1. 声明正常的队列(test_queue_dlx)和交换机(test_exchange_dlx)
    -->
    <rabbit:queue name="test_queue_dlx" id="test_queue_dlx">
        <!--3. 正常队列绑定死信交换机-->
        <rabbit:queue-arguments>
            <!--3.1 x-dead-letter-exchange:死信交换机名称-->
            <entry key="x-dead-letter-exchange" value="exchange_dlx"/>
            <!--3.2 x-dead-letter-routing-key:发送给死信交换机的routingkey-->
            <entry key="x-dead-letter-routing-key" value="dlx.hehe"></entry>
            <!--4.1 设置队列的过期时间 ttl-->
            <entry key="x-message-ttl
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值