apache / apache/rocketmq-dashboard

[Studio][Feature] Show the pre-dead-letter retry count on DLQ messages

Open
#4,268 2 comments 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.