在我的项目中,我使用mongodb MapReduce进行数据聚合,并对Finalize函数中的聚合结果进行一些繁重的计算。
问题面临: 如果正在处理任何MR作业而不是所有用户,则每个客户端的数据库请求/查询数量限制为2-3。任何额外的数据库查询请求(来自同一客户端)都不受理,用户卡住了。 如果任何其他用户向节点服务器发送http请求或数据库查询请求(单个或最多2-3个db请求),它可以正常工作。所以这意味着我的节点循环没有被阻止。请注意,我只使用单节点进程(尚未使用集群)。
MR作业完成后,一切正常,待处理的数据库查询成功返回。
为了确保我的项目没有任何问题,我创建了一个没有express和mongoose的简单节点项目,并对其进行类似的测试。问题也很容易重现。
为什么会发生这种情况?
任何帮助都将不胜感激。