对象存储一致性设计:读后写、覆盖写与多地域复制
先回答三个问题 新写对象是否读后可见? 覆盖写是否存在短暂旧读? 跨地域复制的延迟窗口是多少? 业务协议建议 写入时带版本号(ETag/VersionId)。 读取时声明期望版本,不满足则重试或降级。 删除采用 tombstone 而非立即硬删。 典型流程 PUT(v2) -> 返回version=v2 -> GET(if-match=v2) -> 成功 多地域策略 强一致需求走单主写入。 多主写入必须引入冲突解决策略(LWW 或 CRDT)。 对外暴露“可见性延迟”SLO,避免误判故障。 小结 对象存储的一致性不是文档注释,而是业务协议的一部分。把版本语义显式化,读写行为才可预测。