yuluo-yx opened a new issue, #4453: URL: https://github.com/apache/rocketmq-dashboard/issues/4453
### Before Creating the Feature Request - [x] I have searched the [open issues](https://github.com/apache/rocketmq-dashboard/issues) and believe this is not a duplicate. - [x] I understand that a non-trivial feature is agreed in this issue first: the design is discussed here before a pull request is sent, as described in CONTRIBUTING.md. ### Is Your Feature Request Related to a Problem? 静态 Topic 迁移后,同一逻辑队列可以跨多个 Broker 的历史物理队列分段。现有路由视图只有分布、数量和权限,无法解释这些映射。本 PR 增加 Topic 列表的 Static mapping 入口及只读诊断接口。 ### Describe the Solution You'd Like This issue records the design and implementation that was previously submitted in #4152 and closed automatically when `rocketmq-studio` was deleted during the branch switch announced in #4379. The pull request will be resubmitted against `master`, which now contains the same Studio history plus the new contribution templates. 静态 Topic 迁移后,同一逻辑队列可以跨多个 Broker 的历史物理队列分段。现有路由视图只有分布、数量和权限,无法解释这些映射。本 PR 增加 Topic 列表的 Static mapping 入口及只读诊断接口。 ## 改动说明 服务取当前路由 Broker 与映射广播名称的并集,只访问所选实例已登记主节点,通过 SDK examineTopicConfig 获取完整 TopicConfigAndQueueMapping。界面并排展示 NameServer 广播版本/范围/当前队列 ID 与 Broker 本地版本/dirty 标记/历史分段;版本、范围或总逻辑队列数不同明确提示采样差异。 历史分段保留 Broker 原顺序和原始代数,64 位 epoch 与位点全程为字符串。-1 的逻辑起点、开放物理末尾明确标注,不伪造保留消息范围。NO_MAPPING 与响应不可用严格区分,部分失败保留其它节点结果;缺少主节点不回退副本,不按历史分段里的任意地址发请求。关闭和实例切换中止等待,刷新先清旧样本,无自动轮询或修复。 协议依据:[MQClientAPIImpl.getTopicConfig](https://github.com/apache/rocketmq/blob/rocketmq-all-5.5.0/client/src/main/java/org/apache/rocketmq/client/impl/MQClientAPIImpl.java#L3274) 使用 lo=true;[TopicQueueMappingDetail](https://github.com/apache/rocketmq/blob/rocketmq-all-5.5.0/remoting/src/main/java/org/apache/rocketmq/remoting/protocol/statictopic/TopicQueueMappingDetail.java) 定义 hostedQueues 与当前 ID 广播,[LogicQueueMappingItem](https://github.com/apache/rocketmq/blob/rocketmq-all-5.5.0/remoting/src/main/java/org/apache/rocketmq/remoting/protocol/statictopic/LogicQueueMappingItem.java) 定义物理末尾排除语义及偏移换算。没有创建、迁移或修改静态 Topic 的写操作。 ## 原提交验证记录 本地后端 61、前端 30 项测试通过;服务 79/79 行、60/68 分支覆盖。Checkstyle、TypeScript/Vite 构建、后端打包通过,ESLint 0 错误、10 条现有告警。浏览器使用本地 GET 拦截验证真实 Topic 入口、版本差异、超大位点和部分失败,最终无控制台错误;未修改真实 Broker。 ## 兼容性与回滚 无新增依赖或数据库迁移,撤销提交可移除入口和接口。读取是分时采样,不证明全集群所有权;历史但已不在路由中的 Broker 不额外查询。真实静态 Topic 迁移、并发选主、性能、压力、容量和混沌测试未执行。上游已有全量测试失败和依赖审计缺口继续披露。提交含 [skip ci],未执行远端工作流。核验日期:2026-09-08。 ### Describe Alternatives You've Considered The alternatives, protocol limits, rollback notes and unverified areas are documented in the migrated pull request text above. The important migration point is that this keeps the same implementation branch and changes only the target base from `rocketmq-studio` to `master`. ### Additional Context - Replaces PR #4152: https://github.com/apache/rocketmq-dashboard/pull/4152 - Branch switch notice: #4379 - Target branch for the new PR: `master` ### Are You Willing to Implement It? - [x] Yes, I am willing to submit a pull request once the design is agreed. -- 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]
