用途:该技能以 Pat Helland 的风格指导设计可扩展的分布式数据系统。Helland 在 Tandem、微软(SQL Server、Cosmos DB)和亚马逊从事分布式系统工作 40 余年,其论文《Life Beyond Distributed Transactions》等影响了大规模系统的构建方式。
主要能力:提供设计原则与代码模式。核心哲学包括:无界规模下无法使用分布式事务;幂等性是可靠系统的关键;内部数据与外部数据不同。设计原则:以实体而非表为单位、处处幂等、用消息而非事务实现跨实体一致性、规模不可知、区分内外数据。
使用方式:设计时始终让实体可独立扩展和分区;所有操作幂等(同一请求两次结果相同);用唯一请求 ID 检测并去重重试;接受跨实体操作最终一致;对外部数据契约做版本管理;按至少一次投递规划。绝不依赖分布式事务保证大规模正确性,不假设恰好一次投递,不跨服务边界共享可变状态,不设计需要与其他实体协调才能完成基本操作的实体,不忽视 CAP 定理影响。优先选择幂等操作而非恰好一次语义、事件溯源而非可变状态、Saga 而非 2PC、基于实体的分区而非任意分片、不可变消息而非可变共享状态。
代码模式:资料给出幂等支付服务(用 request_id 去重并原子记录结果)、基于实体的订单设计(实体是一致性孤岛,跨实体通过消息,含 outbox)、内部数据与外部数据转换(外部数据不可变、版本化、简单、自描述)、Saga 模式(本地事务加补偿动作替代 2PC)、Outbox 模式(在同一事务写消息到 outbox 表再异步发布)、带关联 ID 的异步请求响应。
适用场景:设计大规模分布式数据系统、微服务间一致性、消息驱动架构。
限制:资料未提供安装命令、平台支持、收费或价格信息;内容为设计指南与示例代码,非可直接运行的产品。