【问题标题】:How to maintain db pool connection如何维护数据库池连接
【发布时间】:2019-07-23 16:26:32
【问题描述】:

我对维护数据库池连接有疑问。实际上,我有多个项目中使用的客户端数据库,因此,例如,使用 Mongodb 我做了类似
Mongodb.connect(URL,{poolSize:5}, function(err,resp)=>{})

。当一个客户端点击一个 API 时,这个 MongoDB 连接就建立了,所以现在另一个客户端点击 API 它将再次调用 mongo 函数。 poolSize 概念在这里工作吗?当前是否从 poolSize 建立了两个连接,或者当我第一次点击时会发生这样的事情

Mongodb.connect(url,{poolSize:5}, function(err,resp)=>{this.connections[{'db':resp}})

我现在将连接存储在连接数组中,客户端点击 API 建立连接并将响应存储在数组中,同时另一个客户端检查连接数组中是否存在某些内容,如果存在,它只是使用该响应对 db 的查询。 db 连接池如何在这里工作?

【问题讨论】:

    标签: database mongodb threadpool connection-pooling


    【解决方案1】:

    听起来您的应用没有重用连接池。主要问题是这部分:

    当一个客户端点击一个 API 时,这个 MongoDB 连接就建立了,所以现在 另一个客户端命中 API,它将再次调用 mongo 函数。

    听起来每次调用 API 时都会创建一个新的MongoDB 连接。这些呼叫中的每一个都将创建自己的距离连接池。 poolSize 将在每个单独的池上强制执行,但连接总数可能会远远超出该限制。

    应在调用 API 之前建立与数据库的连接,例如在应用启动时。然后,这将允许应用程序在命中 API 时立即使用池中的连接,而无需等待连接打开。

    这个blog post 提供了一些实现连接池的正确和错误方法的示例,以 Node.JS 和 Express 为例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-23
      • 2014-04-09
      相关资源
      最近更新 更多