概述
下面的一篇文章讲解的很好:充分的说明了分布式系统的数据最总一致性问题,以“订单”--->“支付”--->“库存”系统为例:
1、订单--》支付,订单成功,支付失败或响应超时,
订单系统发起重试,1)、此时需要支付系统对进行订单号的“幂等”操作,即一个订单只能支付一次,否则返回已经重复支付;
2)、绝对“幂等”操作,支付系统以api的形式提供一个查询操作,查询为支付成功再次发起支付;
3)、先不更新订单的支付状态,支付系统先“冻结”订单金额。等更新订单状态成功后在通知订单系统扣钱,若通知订单系统扣钱失败的话,定时扫描订单和支付系统,进行处理。
2、“订单”--->“支付”--->“库存”
若“订单”--->“支付”成功了,
若库存充足的情况下,调用库存系统失败了,我们可以采用上面类似的方式,发起重试或定时扫描,
若没有货了。考虑几种解决的方案
1 在会员下单的时刻,就告诉仓库,我要你把货物留下来,
2 在会员支付订单时候,在支付之前检查仓库有没有货,如果没有货,就告知会员木有货物了
3 如果会员支付成功,这个时候没有货了,就会退款给用户或者等待有货的时候在发货
总之,都能解决数据最终一致性的问题
分布式系统数据库事务一致性问题
最后
以上就是灵巧黄豆为你收集整理的分布式系统事务一致性问题的全部内容,希望文章能够帮你解决分布式系统事务一致性问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复