【发布时间】:2015-12-18 03:44:11
【问题描述】:
我的应用有一个场景,类似于在 Facebook 中发送好友请求。
当用户 A 向用户 B 发送好友请求时,内部会创建一个新的好友请求文档。稍后当用户B也想向A发送好友请求时,系统会发现存在好友请求文档,因此他们应该是彼此的好友,不会创建新的好友请求文档。
我试图找出用户 A 和用户 B 同时向对方发送好友请求的情况,这将创建 2 个好友请求文档并导致未确定的行为...
感谢您的建议.. 非常感谢!
编辑: 一些人建议使用请求队列来解决这个问题;然而, 我对使用队列感到困惑,因为我认为它会使我的 rest api 端点按顺序处理请求。通过使用队列,我不会失去多线程的所有好处吗?我不禁想象,如果我的服务仅仅因为这个问题而有数百万个请求排队等待一个一个执行,那将是多么糟糕。有人在生产中看到过类似问题吗?
【问题讨论】:
标签: mongodb concurrency locking nosql