一、场景简述假设用户A线上消费,其账户内有余额100元,现在他给B商户付款99元,写成最简单的业务逻辑大概是这样的:数据库查询(SELECT)A账户余额(100)判断A账户余额是否够支付抵扣(100 - 99 >= 0)如果够抵扣,数据库执行扣款操作(UPDATE),商户B加款(A->Banance -= 99, B->Banance += 99)如果不够抵扣,不执行操作这是一个典型的单线程消费模式,显然如果每次都执行这一个操作,这个算法是正确无误的,下面进行一个稍微复杂的操作,假设A线上消费,A转账,其账户内有余额100元,现在他给B商户付款100元,给商户C转账100元,且线上消费和转账是同时进行的,那么会产生多种可能,把所有的操作步骤拆分成以下6个步骤:$1 表示账户余额$2 表示消费金额A11数据库查询(SELECT)A账户余额($1) => trans for BA12判断A账户余额是否够支付抵扣($1- $2 >= 0) => trans for BA13如果够抵扣,数据库执行扣款操作(UPDATE),商户B加款(A->Bananc
Bill
计算机科学与技术硕士
This work is licensed under CC BY-NC 4.0
本站由提供云存储服务