GitHub user Alanxtl added a comment to the discussion: Dubbo-go Metadata Design Spec — 综合审查报告
复盘下来,删减的直接原因很明确:**#2534 是按 #2432 的方案做的一次主动瘦身,不是误删**。 时间线大概是这样: 1. 2023-09 的 [#2432](https://github.com/apache/dubbo-go/issues/2432) 先把当时 metadata 模块梳理了一遍,指出 metadata 逻辑散在 `common/extension`、`config/instance`、`metadata/definition`、`metadata/identifier`、`metadata/service`、`registry/event` 等很多地方。 2. #2432 的评论里给了“优化 draft”:目标是简化 metadata center 处理逻辑,把 metadata 逻辑集中到 `metadata` 模块。 3. 2024-03 的 [#2534](https://github.com/apache/dubbo-go/pull/2534) 落地了这个方案,commit 是 `d6464e40 Refactor metadata`,一次性 `1703 insertions / 5227 deletions`。 4. 后面 [#2760](https://github.com/apache/dubbo-go/pull/2760) 合 `dev-3.3` 时,又把这套删减后的形态带进开发线,所以现在看起来就是 metadata 被“大幅删了”。 它当时的设计假设是:**dubbo-go 3.x 主要服务发现路径已经转向应用级服务发现,所以 metadata center 不再重点存 provider/consumer/service-definition 级元数据,只保留应用级 MetadataInfo、service-app mapping、MetadataService。** 所以被删的核心东西是: - `metadata/definition`:provider service definition / method definition 这套被判断为“不再需要” - `metadata/identifier`:老的 service/provider/consumer identifier 被判断为“不再需要” - `metadata/service/local|remote|exporter`:拆开的 MetadataService 本地/远程/exporter 抽象被压扁到 [metadata_service.go](/dubbo-go/metadata/metadata_service.go:51) - `metadata/report/delegate`:带失败重试、周期上报、provider/consumer metadata 上报的 delegate 层被删 - `common/extension/metadata_*`、`config/instance/metadata_report*`:扩展点和全局实例缓存被认为太分散,迁到/收缩到 metadata 包内部 保留下来的新模型就是现在这套:`MetadataInfo` 作为应用级服务发现元数据容器,见 [metadata_info.go](/dubbo-go/metadata/info/metadata_info.go:58);`MetadataReport` 只负责 app metadata 和 mapping,见 [report.go](/dubbo-go/metadata/report/report.go:29);服务发现过程通过 revision 拿远端 app metadata。 我觉得当时这个删减有它的工程动机:老 metadata 模块确实重、散、和 config/registry/server lifecycle 纠缠很深,而且很多能力对 dubbo-go 当时的应用级服务发现主路径不是必需的。 GitHub link: https://github.com/apache/dubbo-go/discussions/3342#discussioncomment-17121670 ---- This is an automatically sent email for [email protected]. To unsubscribe, please send an email to: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
