Skip to content

关于 OSS 模块“动态切换”设计的工程可行性探讨 (Advice on Data Consistency) #16

Description

@zshs000

作者你好。在深入研读 OSS 模块时,我非常赞赏你利用 FileStrategy + RefreshScope 实现的引擎动态切换方案,以及通过存储object_key 实现的厂商 无关性解耦。这在代码审美上非常优秀。然而,从工业级生产环境的角度来看,这里存在一个“致命的数据断层”:

  1. 物理存储惯性:代码可以秒级切换,但存储在 MinIO 里的二进制文件不会随着配置变更自动搬运到 OSS。
  2. 元数据丢失:由于数据库目前只存 object_key,一旦发生配置切换,系统无法得知历史文件究竟存储在哪个平台。
  3. 结果:这种动态切换在有存量数据的情况下,会导致旧文件访问全部 404 或签名失败。

建议:
既然已经实现了策略模式,建议在 t_file_info 中补齐 storage_platform字段。这不仅能圆上“动态切换”的逻辑(实现多云并存路由),也能让这个“炫技”真正具备生产级价值。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions