【金融科技工程】幂等、事务与一致性:SAGA、TCC、对账补偿
超时重试会让支付扣两次、退两次。本文按 Stripe 文档、IETF 草案与 Seata 实现拆解 Idempotency-Key 状态机、业务唯一键、2PC/TCC/SAGA/Outbox 的取舍与空回滚防悬挂,结论是每一跳都必须可安全重试。
Linux 内核、存储与网络、可观测性、系统架构与大模型基础设施的工程笔记:机制拆解、踩坑复盘与可核对证据,少空谈。
共 3 篇文章 · 返回首页
超时重试会让支付扣两次、退两次。本文按 Stripe 文档、IETF 草案与 Seata 实现拆解 Idempotency-Key 状态机、业务唯一键、2PC/TCC/SAGA/Outbox 的取舍与空回滚防悬挂,结论是每一跳都必须可安全重试。
2PC 阻塞时协调者宕机怎么办?3PC 试图用额外一轮消息解决,却撞上网络分区。Saga 放弃全局锁,用补偿事务换取可用性。本文从 Skeen 论文推导 3PC 的非阻塞证明,分析其分区缺陷,再到 Saga 编排/协同、补偿陷阱、Temporal 工程实践和 TCC 资源预留——把分布式事务的理论与工程讲清楚。
「用 2PC 就行了」——说这话的人大概没在生产环境里被 Coordinator 挂掉后全员阻塞的锁堵过三小时。2PC 的真实失败模式、Percolator 的精妙设计、Saga 与 TCC 的工程取舍,分布式事务远比教科书复杂。