余额 TCC 实现分析

为什么要有可用余额字段?
为什么是可用金额,
而不是预留金额/冻结金额?

在分布式事务 TCC 中 T 阶段要先锁住金额以便事务失败回滚时不会出现金额被取走导致回滚失败出现负账。

预留金额模式

入账

T:账户+入账,预留+入账
C:预留-入账
R:账户-入账,预留-入账

出账

T:预留+出账 where 账户-预留>出账
C:账户-出账,预留-出账
R:预留-出账

可用余额模式

入账

T:账户+入账
C:可用+入账
R:账户-入账

出账

T:可用-出账 where 可用>出账
C:账户-出账
R:可用+出账

可以看出可用余额模式要简单得多。

在实现中还需要预留金额表记录未完成的预留金额明细,以便知道冻结的金额明细是处于什么状态。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。