apache / apache/rocketmq-dashboard
[Studio][Feature] Show the pre-dead-letter retry count on DLQ messages
- Dominant language
- Java
- Stars
- 1.4k
- Forks
- 683
- Avg merge
- 2d 14h
- Merged PRs (30d)
- 58
Description
## 1. 需求与来源
DLQ 消息明细应显示该死信被重投的次数(reconsumeTimes)。来源:
- 父项目(master 经典版)DLQ 消息详情弹窗已展示 `ReconsumeTimes`:`frontend-new/src/components/DlqMessageDetailViewDialog.jsx` L47(perma-link:[770822bb](https://github.com/apache/rocketmq-dashboard/blob/770822bb/frontend-new/src/components/DlqMessageDetailViewDialog.jsx#L47))。
- 死信处理是 RocketMQ 运维的核心场景:重投次数是死信分诊的第一要素(从未重投/重投多次的处理策略完全不同)。
## 2. Use case
消费组死信列表分诊时,需要知道每条死信在进入死信队列前经历了多少次消费重试。当前 Studio DLQ 明细抽屉只显示 Message ID/Queue/Offset/入队时间/Keys/Body/属性,无法直接判断重投历史。
## 3. Importance
后端扫描死信时直接持有 `MessageExt`(rocketmq-common 5.5.0 提供 `getReconsumeTimes()`,字节码亲验),`RocketMQDLQProvider` 的 `toExportVO` 同时供给 list/export/excel 三条路径,补一个字段即可全链路生效。数据已在手,仅缺 VO 字段与展示。
## 4. Expected behavior / acceptance criteria
- `DLQMessageVO` 新增 `reconsumeTimes`,由死信 MessageExt 的 reconsumeTimes 填充。
- DLQ 消息明细抽屉表格在 Offset 后新增"重投次数"列;字段缺失时显示 `-` 占位。
- 测试:provider 层断言 listMessages 返回值携带 reconsumeTimes;前端抽屉断言新列渲染。
## 5. Related PR
Fix: #4269.
Contributor guide
No contributing guide indexed for this repository
Research direction
Locate DLQMessageVO and RocketMQDLQProvider, then trace the provider’s list/export path to confirm how MessageExt data reaches the response. Find the Studio DLQ message-detail drawer and its existing Offset column, then run the provider and frontend tests mentioned in the issue. Done means reconsumeTimes is returned, displayed as 重投次数 after Offset, and missing values render as '-'.2026
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, javascript
- Domain
- backend, frontend
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 76/100