上一篇
想象一下,你在电商平台下单买了个新手机,点击支付后,系统需要同时完成:
如果订单生成了,但支付失败,库存却扣了——用户没付钱,货却没了,老板可能要找你“喝茶”,这就是典型的分布式事务问题:多个独立服务的数据如何保证“要么全成功,要么全回滚”?
今天我们就掰开揉碎,聊聊三种主流分布式事务方案:2PC(两阶段提交)、TCC(Try-Confirm-Cancel)和SAGA,看看它们各自的“生存法则”。
核心思想:像小组长开会,先问大家“能搞定吗?”(准备阶段),再喊“那就干吧!”(提交阶段)。
适用场景:传统银行转账、内部系统低并发场景。
核心思想:把事务拆成三步——
适用场景:秒杀、电商等高并发业务,钱和库存不能出错的场景。
核心思想:长事务拆成多个本地事务,每个事务完成后触发下一个,如果中间失败,就逆向调用补偿操作(生成订单”的补偿是“删除订单”)。
适用场景:物流系统、跨系统长流程(如旅游订票:酒店+机票+租车)。
方案 | 一致性 | 性能 | 复杂度 | 适用场景 |
---|---|---|---|---|
2PC | 强一致 | 差 | 低 | 低并发强一致需求 |
TCC | 最终一致 | 中高 | 高 | 高并发、资金交易 |
SAGA | 最终一致 | 高 | 中 | 长流程、松耦合 |
最后提醒:没有银弹!实际业务中常会混合使用,比如用TCC处理支付,SAGA处理物流。
本文由 越碧曼 于2025-08-08发表在【云服务器提供商】,文中图片由(越碧曼)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://up.7tqx.com/wenda/565653.html
发表评论