RethinkDB的短期或长期连接?

我们有一个基于restify的Node.js项目,我们使用RethinkDB作为数据库。 问题是应该从代码的不同部分(从路由处理程序,中间件)访问RethinkDB,但不是所有的请求。 我想知道在这种情况下连接到RethinkDB的最佳方式是什么?

我看到下一个选项:

  • 有一个长连接,存储在某处(我们现在使用的方法),

  • 在每个HTTP请求上连接到RethinkDB,可能有些连接从不使用,

  • 分别连接每个部分,每个HTTP请求可能有多个连接,但没有无用的连接。

我问这个问题是因为我不确定重新思考如何很好地处理短期/长期的连接,以及它们是多么昂贵。 例如,MongoDB更喜欢长连接,但RethinkDB文档中的所有示例都使用每个HTTP请求一个连接。

我build议每个查询连接池或一个连接。 特别是如果您使用像换卡一样的function,推荐使用它自己的连接。

当你为所有事情使用单一的连接时,当连接超时/断开时,你还必须处理重新连接。 我认为只是每个查询使用一个连接,或者在一个请求/响应上共享一个连接,会更容易。

只要确保在使用后closures连接,否则您将泄漏连接,并且无法创build新的连接。

有些驱动程序更进一步,并不需要你想到连接了,如: https : //github.com/neumino / rethinkdbdash

或Elixir RethinkDB: https : //github.com/hamiltop/rethinkdb-elixir/issues/32有一个问题来创build连接池。

RethinkDB有一个问题相关的连接池: https : //github.com/rethinkdb/rethinkdb/issues/281

这也许是社区也是如此。