NipGeihou's blog NipGeihou's blog
  • Java

    • 开发规范
    • 进阶笔记
    • 微服务
    • 快速开始
    • 设计模式
  • 其他

    • Golang
    • Python
    • Drat
  • Redis
  • MongoDB
  • 数据结构与算法
  • 计算机网络
  • 应用

    • Grafana
    • Prometheus
  • 容器与编排

    • KubeSphere
    • Kubernetes
    • Docker Compose
    • Docker
  • 组网

    • TailScale
    • WireGuard
  • 密码生成器
  • 英文单词生成器
🍳烹饪
🧑‍💻关于
  • 分类
  • 标签
  • 归档

NipGeihou

我见青山多妩媚,料青山见我应如是
  • Java

    • 开发规范
    • 进阶笔记
    • 微服务
    • 快速开始
    • 设计模式
  • 其他

    • Golang
    • Python
    • Drat
  • Redis
  • MongoDB
  • 数据结构与算法
  • 计算机网络
  • 应用

    • Grafana
    • Prometheus
  • 容器与编排

    • KubeSphere
    • Kubernetes
    • Docker Compose
    • Docker
  • 组网

    • TailScale
    • WireGuard
  • 密码生成器
  • 英文单词生成器
🍳烹饪
🧑‍💻关于
  • 分类
  • 标签
  • 归档
  • 消息队列

    • RabbitMQ

      • MQ - 基本概念
      • RabbitMQ - 概念
      • RabbitMQ - 命令
      • RabbitMQ - 交换机
      • RabbitMQ - 死信队列
        • 概念
        • 配置
        • 触发
        • 参考资料
  • 搜索引擎

  • 中间件
  • 消息队列
  • RabbitMQ
NipGeihou
2023-04-08
目录

RabbitMQ - 死信队列

image-20230413121218109

# 概念

在 RabbitMQ 中,死信队列本质上和普通队列没任何区别,同样需要绑定在交换机上,而死信队列绑定的交换机则为死信交换机,又或者说绑定在死信交换机的队列叫做死信队列。

笔记

死信交换机、死信队列都仅仅是一种约定,实际上还是普通的交换机,仅仅是约定了当业务队列出现问题时,将消息投递到配置的队列,而这个队列被约定叫死信队列。

# 配置

将需要使用死信队列的业务队列,配置如下参数:

  • x-dead-letter-exchange :死信交换机的名称,必填
  • x-dead-letter-routing-key :投递到死信交换机时的 key,如果不填则使用消息原有的 key

# 触发

dg_dead_letter_message_flow

符合下述任意一个条件:

  • 消费者使用 basic.reject 或 basic.nack 时将 requeue 参数设置为 false 来否定消息。

    com.rabbitmq.client.Channel#basicNack(long deliveryTag, boolean multiple, boolean requeue);
    com.rabbitmq.client.Channel#basicReject(long deliveryTag, boolean requeue);
    
  • 消息过期,即消息在 Queue 中存在的时间超过了设置的消息存活时间

    详情参考:Time-To-Live and Expiration — RabbitMQ (opens new window)

  • 消息重试次数超过 16 次,消息重试失败

  • 超出队列长度

    默认情况下,队列的长度视乎硬盘和内存情况。

    详情参考:Queue Length Limit — RabbitMQ (opens new window)

# 参考资料

  1. 【RabbitMQ】一文带你搞定 RabbitMQ 死信队列 | 弗兰克的猫 (opens new window)
  2. RabbitMQ 死信队列和延时队列 - 掘金 (opens new window)
  3. 死信 Exchange (opens new window)
  4. Dead Letter Exchanges — RabbitMQ (opens new window)
  5. RabbitMQ 死信队列在 SpringBoot 中的使用_wx5b97e9cfa102c 的技术博客_51CTO 博客 (opens new window)
上次更新: 2024/03/11, 22:37:05
RabbitMQ - 交换机
概述

← RabbitMQ - 交换机 概述→

最近更新
01
Docker Swarm
04-18
02
安全隧道 - gost
04-17
03
Solana最佳实践
04-16
更多文章>
Theme by Vdoing | Copyright © 2018-2025 NipGeihou | 友情链接
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式