在引用Node.js server with multiple concurrent requests, how does it work? 之后
我仍然不能理解在并发性方面Node.js和MongoDB是如何工作的。
例如,我有一个API,用户将从购物车中结账。(例如,在库存中有2双鞋可用,并且有3个用户同时购买它。预期的结果是第三个用户将无法购买它。但它如何知道哪个用户不会得到鞋子呢?)
当按下结帐按钮时,我可以使用Mongodb中的"transactions“来确保所有流程(例如,向客户收费,更新库存减少1,为该用户添加商品)只有在所有流程都成功的情况下才会写入。
但是如果有3个事务同时发生呢?或者我太偏执了,这种情况在现实生活中是不会发生的。
我如何用postman来模拟这件事呢?还是卷曲?
我希望在处理可能会被并发修改破坏的复杂数据时,实现类似于firebase is offering的东西。
发布于 2019-05-17 17:27:39
我曾经用Postman做过类似的尝试。我正在为注册到应用程序的用户生成一个ID,它会自动递增。因此,基本上第一个用户获得ID 1,第二个用户获得ID 2,依此类推。为了生成一个我从mongodb获得的最大的ID,将它加1并分配给下一个用户。现在,如果两个用户同时注册会发生什么。我同时使用Postman注册了两个用户,结果和我预期的一样,他们都得到了相同的ID。现在,你怎么防止它呢?您可以通过使用锁来执行此操作。您必须为集合使用MongoDB锁,因此一次只有一个用户可以访问它。
https://stackoverflow.com/questions/56183061
复制相似问题