← 返回概念解读

Concept Fable精修版

死信队列

Dead-Letter Queue, DLQ · Operations / reliability

先读故事。这里不急着给定义,先让问题自己长出来。

寓言故事

那些总也送不到的信,不能继续塞回邮袋

山城邮局有一条自动传送带。信件放上去,分拣木偶按地址送到各街各户。大多数日子里,邮袋早上进来,傍晚就空了。

麻烦来自少数怪信。有的地址少了巷名,有的收信人搬走,有的封口破损看不清字。传送带把送不出的信又倒回入口,木偶一遍遍尝试,整条带子被几封坏信拖慢。

邮局长先让木偶更努力:失败就立刻重送,最多试十次。结果坏信在入口反复打转,正常信也被堵住。第二次修补是把失败信塞到桌角,没人登记,几天后又被误倒回袋里。

老邮差提议设一只红箱。凡是重试多次仍失败、地址缺关键字段、收件人拒收或封面损坏的信,先离开主传送带,投入红箱,并贴上失败原因和最后处理时间。

红箱不是垃圾桶。每天有专人查看:能补地址的补地址,能退回的退回,疑似欺诈的交给巡街人,无法处理的归档。主传送带因此不再被同一批坏信反复卡住。

后来山城邮局反而更可靠。局长明白,失败不该被无限重试,也不该悄悄消失;送不出去的东西需要单独排队、留下原因、等待人工或特别流程处理。

红箱还暴露出上游问题。若某条街的信总进红箱,说明地址册该更新;若某个商号总寄破损信,邮局就要求它换封套。失败被集中看见后,不只是处理个案,还能改进源头。

局长最后给新木偶定了规矩:可重试的失败按次数重试,不可恢复的失败进红箱,任何失败都要带原因。主路保持畅通,异常有去处,整座邮局才不会被少数坏信拖死。后来新邮差入门,第一课就是不要害怕失败信。可怕的不是信送不到,而是它在主路上无限打转、拖住所有好信,还没人知道为什么失败。红箱越清楚,主路越稳定,正常信也越少被牵连。后来邮局每月清点红箱,既看处理速度,也看哪些失败应当从源头减少。

揭示

这个故事讲的是:死信队列

死信队列会保存那些多次重试后仍失败,或没有通过校验的消息和任务。它把问题任务隔离出来,避免阻塞正常主流程。

在 Agent 系统里,死信队列能保留失败上下文,方便排查、修复和受控重放。调用外部工具、解析文档、更新客户记录或依赖变化数据时,它尤其重要。

隐喻映射

  • 自动传送带:主任务队列或消息队列
  • 坏信:格式错误、权限不足、外部依赖失败或业务状态不合法的任务
  • 反复放回传送带:无边界重试导致队列污染
  • 黑边木箱:Dead-Letter Queue
  • 完整记录:payload、错误、重试次数、上下文和负责人
  • 修正后重放:人工或自动修复后的 replay
  • 最后洞察:DLQ 把失败从运行噪音变成恢复和改进的入口

Soloharness 判断

这个概念的实战价值,是帮你把“看起来聪明的 AI 功能”拆成可交付、可验收、可治理的工作单元。

Message queueretryjob queuefailure handlingbackoffobservability