我们有一个基于restify的Node.js项目,我们使用RethinkDB作为数据库。问题是,RethinkDB应该从代码的不同部分(从路由处理程序、中间件)访问,而不是针对所有请求。在这种情况下,我想知道连接到RethinkDB的最佳方式是什么?
我看到了接下来的选择:
我之所以问这个问题,是因为我不知道如何重新考虑如何处理短/长的连接,以及它们的成本有多高。例如,MongoDB更喜欢长连接,但是RethinkDB文档中的所有示例都在每个HTTP请求中使用一个连接。
发布于 2015-11-10 20:20:34
我建议每个查询使用一个连接池或一个连接。特别是当您使用像changefeed这样的特性时,它会重新建议使用它自己的连接。
当您对所有事物使用单个连接时,当连接超时/中断时,还必须处理重新连接。我认为只在每个查询上使用一个连接,或者在请求/响应上共享一个连接比较容易。
只需确保在使用连接后关闭连接,否则将泄漏连接并无法创建新连接。
有些驱动程序更进一步,不再需要考虑连接,比如:https://github.com/neumino/rethinkdbdash
或者RethinkDB:https://github.com/hamiltop/rethinkdb-elixir/issues/32有一个问题要创建连接池。
RethinkDB有一个与连接池相关的问题:https://github.com/rethinkdb/rethinkdb/issues/281
这可能也是社区的发展方向。
https://stackoverflow.com/questions/33630773
复制相似问题