开发者社区> 问答> 正文

nodejs怎么使用mongodb连接池

在开发中想使用连接池 在网上找到了一段代码 但是自己测试的时候发现了些问题 当我把setTimeout中的语句数量变成五条以上的时候 nodejs会首先执行五条 然后过一段时间才会执行剩下的 而且好像server_options的pool_size:1好像也没有奇效 不知道这个是什么问题 要怎么做修改 代码如下:
screenshot
screenshot

展开
收起
蛮大人123 2016-02-14 15:58:32 3972 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    其实你的问题跟 mongodb 和连接池都没有关系,是你的测试方法不对。
    http.get 默认最多同时发起 5 个请求,超过的请求会排队。你如果需要更多请求,修改 http.globalAgent.maxSockets 的值就行,比如 20。
    你的 http.get 调用写的也有问题,你需要用下面代码把 res 全部数据读完 http.get 才会释放连接:

    res.on('data', function (chunk) {
        // use chunk
    });

    另外,如果我没记错的话,通过 mongodb.Server 创建的实例本身就是带连接池的,连接池大小通过 poolSize 设置。你直接从这个 server 不断创建 db 并使用就行,不需要手动创建并管理多个 server 实例,多此一举了。

    2019-07-17 18:42:42
    赞同 1 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
开源数据库 MongoDB 专场 MongoDB疑难杂症分析及优化 立即下载
MongoDB多数据中心的方案选型之路 立即下载
饿了么高级架构师陈东明:MongoDB是如何逐步提高可靠性的 立即下载