[求助]关于金额处理的问题?
一个很简单的功能 - 视频下载,逻辑是这样的。
1:user 表用户金额减少
2:money_records 表记录一下
3:videos 表 下载次数增加一次。
一般都是把这三次操作放到一个事务里面,有什么别的办法么?
可以将三次操作单独管理,又保证数据的一致性么?
想过用事件队列,但是又保证不了数据的一致性!
没有吧,不在事务里怎么保证一致性,其他操作失败没法回滚之前的操作啊。 非要拆开的话,从业务角度分析,扣钱是主要逻辑,那么可以在用户扣款成功后做两个异步操作:1.下载+1,2.添加记录,只需要保证异步操作一定成功即可。下载数和消费记录一般来说对业务影响不大,不过还是得看你们的业务场景吧。