yuluo-yx opened a new pull request, #4092:
URL: https://github.com/apache/rocketmq-dashboard/pull/4092

   ## 变更目的
   
   在消息队列浏览中支持按故障时间定位 offset。现有页面只能拖动 offset;普通 Topic 查询受扫描预算与 200 
条结果上限限制,已知故障时间时很难直接找到高流量队列中的目标消息。
   
   选择当地时间后,点击目标队列的 `Locate`,界面刷新可读范围并移动到 Broker 
时间索引给出的附近位置。继续使用原有查看操作核对消息实际存储时间。时间查找是近似定位,不承诺输入时间与消息时间完全相等。
   
   ## 实现范围
   
   - 新增只读 `GET /api/messages/queue-position`,从 HTTP 参数绑定、服务校验到实例绑定 Apache 
客户端完整接通。
   - 验证当前可读路由,读取队列边界,调用 SDK `searchOffset`;结果限制在可读快照范围,空队列返回 null 
offset,查询失败返回明确错误。
   - 
前端使用当地时间选择器,将毫秒时间戳发送给接口;支持失败重试,丢弃切换实例、Topic、时间或重新加载后的旧请求结果。一个旧请求的完成不会释放新请求的锁。
   - 定位只读路由与时间索引,不拉取消息体或修改消费组位点;新增按钮所在布局在宽度不足时换行。
   - 新增中文操作、接口、并发与回滚说明。
   
   已核对原功能 #2545、队列筛选 #4050、导航 #3459 和问题 #3400。后两者仅处理队列列表搜索、排序和空队列筛选,本 PR 不重复其范围。
   
   ## 本地验证
   
   基线 `d6dee7d7ccfcf4886f02466ec51452a6928b2cc8`,Java 21、Node 24.18.0;验证日期 
2026-09-08。
   
   ```bash
   cd server
   mvn -B -ntp 
-Dtest=QueueTimestampLookupTest,RocketMQMessageProviderTest,MessageServiceTest,MessageControllerTest
 verify
   cd ../web
   npx vitest run src/components/__tests__/QueueTimestamp.test.tsx 
src/components/__tests__/QueueBrowser.test.tsx src/api/message.test.ts 
src/pages/instance/__tests__/MessagePageAsyncState.test.tsx 
src/pages/instance/__tests__/MessagePage.test.tsx
   npm run build
   ```
   
   - 后端 83 个测试通过,包含 19 个新 HTTP/服务/Provider 组合测试;Checkstyle、打包通过。
   - JaCoCo 0.8.13:新增生产定位逻辑(Controller、Service、Provider)26/26 行,22/22 分支覆盖。
   - 前端 52 个测试通过,TypeScript、Vite 构建通过;修改文件 ESLint 0 错误,仅保留 `QueueBrowser.tsx` 
原有的两个 Fast Refresh 警告。
   - Playwright 使用真实本地页面和受控 API 响应验证:`2026-09-08 08:00:00` 被发送为 
`1788825600000`,队列滑块更新到返回的 offset 42;1200px 窗口没有页面水平溢出。此项是浏览器交互验证,不是真实 RocketMQ 
集群 E2E。
   - `git diff --check` 通过;13 个文件,632 行新增、14 行删除,共 646 行。
   
   同一原样上游基线全量后端测试存在 3 个既有失败(AuthCorsIntegrationTest 
两项、AliyunInstanceProviderTest 一项),依赖扫描也存在既有漏洞。本 PR 
未添加依赖且相关验证没有新增失败,不能宣称项目级全量测试或漏洞门槛通过。未执行真实集群压力、容量与混沌验证。
   
   无迁移,直接替换;无新增配置或数据库字段。回滚本提交即可。提交含 `[skip ci]`,按本任务要求仅在本地执行验证。
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to