小编Yat*_*ath的帖子

电子商务应用程序设计(例如:Amazon/ebay/flipkart):并发问题处理

我一直在尝试了解亚马逊将如何处理并发写入问题,例如当多个用户尝试购买可用数量只有一件的同一产品时。

考虑到“产品”表具有以下字段:

在此输入图像描述

我正在寻找有关数据库事务和锁定的详细解释,或者以更详细的技术术语处理这种情况的任何其他方法。

假设当 2 位用户在购物车中添加了相同的产品并且一位用户继续付款时:

A)

开始交易

从产品中选择 *,其中 ID = 1 且状态 =“可用”进行更新;

将产品表中的数量字段更新为“0”且状态 =“已售完”

调用支付网关

如果付款超时 回滚

犯罪

结束交易

=================================================== ========================= 当上述事务仍在进行时,其他用户仍然可以看到可用的产品,因为它仍未提交,他们可能会也继续付款。

此外,如果有足够数量的产品可用,锁定产品行可能会阻止其他用户同时尝试购买相同的产品。

=================================================== =========================

如何处理这个问题?

我已阅读以下关于在数据库上使用乐观锁定的博客,但发现很难深入理解到底如何实现。

设计电子商务网站 - 并发

java database concurrency transactions e-commerce

6
推荐指数
1
解决办法
2038
查看次数

标签 统计

concurrency ×1

database ×1

e-commerce ×1

java ×1

transactions ×1