【发布时间】:2017-01-15 01:26:19
【问题描述】:
我的 MongoDB 环境遇到问题 - 设置如下:
我的节点应用程序提供了一个处理用户注册的 restify API(根据他的邮件查找用户是否存在于集合中,如果不存在,则插入他(注意 - 插入使用 bcrypt 散列密码,所以可能是慢一点))。它使用 restify 和 Mongoose ORM。
第二个基准测试脚本(也在节点中编写,在同一台机器上运行)使用 HTTP PUT 访问这个 restify API。
我在基准测试中开始了大约 20-30 个这样的请求(使用随机数据),并且只有一些 API 请求正确地插入了新用户。另一方面,MongoDB 会产生类似于以下的错误:
未授权...执行命令 { find: "users", filter: { mail: "rroouksl@hddngrau.de" } }
无权执行命令 { insert: "users", documents: [ { ... } ], ordered: false, writeConcern: { w: 1 } }
其他一些用户可以很好地插入。尤其是同时请求数量较少(1-5)时,不会出现问题。 Mongo 不应该能够处理这些“低”数量的请求吗?这是因为它在同一台机器上运行而有问题吗?我在 Mongo 中为这个项目创建的用户没有获得足够的 txns/秒吗?
最好的问候, 扎利伊
【问题讨论】:
-
我对Mongo了解不多,但是有没有可能是读锁或者写锁导致了这些错误呢?也许检查这篇文章写失败和锁定:rainforestqa.com/blog/…
-
我也遇到了这个问题,能告诉我如何解决这个问题吗?
标签: node.js mongodb mongoose restify