為什么要有可用余額字段?
為什么是可用金額,
而不是預留金額/凍結金額?
在分布式事務 TCC 中 T 階段要先鎖住金額以便事務失敗回滾時不會出現(xiàn)金額被取走導致回滾失敗出現(xiàn)負賬。
預留金額模式
入賬
T:賬戶+入賬,預留+入賬
C:預留-入賬
R:賬戶-入賬,預留-入賬
出賬
T:預留+出賬 where 賬戶-預留>出賬
C:賬戶-出賬,預留-出賬
R:預留-出賬
可用余額模式
入賬
T:賬戶+入賬
C:可用+入賬
R:賬戶-入賬
出賬
T:可用-出賬 where 可用>出賬
C:賬戶-出賬
R:可用+出賬
可以看出可用余額模式要簡單得多。
在實現(xiàn)中還需要預留金額表記錄未完成的預留金額明細,以便知道凍結的金額明細是處于什么狀態(tài)。