首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >购物车结账功能的Node.js和mongoDB多并发请求

问购物车结账功能的Node.js和mongoDB多并发请求
EN

Stack Overflow用户
提问于 2019-05-17 17:03:03
回答 1查看 155关注 0票数 0

在引用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的东西。

EN

回答 1

Stack Overflow用户

发布于 2019-05-17 17:27:39

我曾经用Postman做过类似的尝试。我正在为注册到应用程序的用户生成一个ID,它会自动递增。因此,基本上第一个用户获得ID 1,第二个用户获得ID 2,依此类推。为了生成一个我从mongodb获得的最大的ID,将它加1并分配给下一个用户。现在,如果两个用户同时注册会发生什么。我同时使用Postman注册了两个用户,结果和我预期的一样,他们都得到了相同的ID。现在,你怎么防止它呢?您可以通过使用锁来执行此操作。您必须为集合使用MongoDB锁,因此一次只有一个用户可以访问它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56183061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档