【问题标题】:Best practice for managing OrientDB connections in Express.js / Web Applications在 Express.js / Web 应用程序中管理 OrientDB 连接的最佳实践
【发布时间】:2015-05-29 06:53:02
【问题描述】:

在 Express.js 或任何 Web 应用程序中管理OrientDB 连接的推荐方法是什么?每个请求的连接?将使用oriento Node.js 驱动程序

【问题讨论】:

    标签: express orientdb orientjs oriento


    【解决方案1】:

    如果你使用 Oriento,你可以尝试连接池,根据PR #7你可以这样设置:

    var server = Oriento({
      user: 'root',
      password: 'foo',
      pool: {
        max: 10 // use a maximum of 10 sockets in the pool
      }
    });
    

    请记住,由于 orientdb 中的线程安全问题 [...] (reference),Oriento 的 README 中有时会隐藏连接池配置。您可能需要在使用它之前清除它。

    【讨论】:

    • 感谢达里奥的回复。我很想知道什么时候应该打开和关闭连接。我们是否应该为每个请求打开一个连接并在请求结束时关闭它?
    • 好吧,每个请求打开一个连接可能会耗尽 OrientDB 连接的最大数量(我相信默认为 50),所以我不建议这样做。我建议使用单个连接或池(注意我前面提到的警告),它们应该在接收请求之前设置。如果现有连接失败,Oriento 将自行重新连接。关闭和打开连接也可能会引入开销。
    • 正常的网络实践是在请求开始时打开一个连接,最好是一个事务,然后在请求结束时提交/关闭,以便释放连接。准备进行一些测试...
    • 我不确定“正常的网络实践”是什么,我想这取决于您引用的来源。使用连接池来减少连接和断开数据库的开销是很常见的。例如,sequelize,一个流行的 SQL ORM 在其getting started docs 中建议一个有 5 个连接的池。每次发出查询时,将使用其中一个连接,然后释放以供其他查询使用,而无需建立新连接。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-26
    • 2014-03-11
    • 2011-02-18
    • 1970-01-01
    • 2018-08-23
    • 1970-01-01
    • 2012-06-06
    相关资源
    最近更新 更多