Neo4J可以处理多少个并行连接

时间:2015-05-21 00:43:13

标签: node.js neo4j database-connection graph-databases

我们正试图从多个nodejs进程访问Neo4J图形数据库服务器。每个进程都创建自己的连接并尝试连接/写入neo4j数据库。我们尝试了大约10个进程,它无法处理这些连接。

鉴于此,所有连接都具有高工作负载。

有人可以建议Neo4J DB使用多少个并行连接是否切实可行以及如何扩展以支持更多连接?

编辑:更多信息 连接是使用'neo4j'npm包创建的,如下所示:

var neo4j = require('neo4j')
var config = require('./config')
var graph = new neo4j.GraphDatabase(config.db.neo4j)

//usage
graph.query(query, params, function(err, result){
   //
}) 

我假设每个进程,这个代码创建了新的连接('graph'变量的每个实例),因为似乎没有任何池化机制。

我假设基于生成的nodejs进程的连接数(所有进程都是单线程的)。

2 个答案:

答案 0 :(得分:1)

不确定这是否对您有所帮助,但是如果您想要执行并发读/写,那么对此没有限制。 但是,您需要考虑的主要问题是您要执行的操作。如果您执行简单的读取/写入操作并不昂贵,那么与您希望执行更重的操作相比,您可以获得更多的并发请求。

例如,有一些时间我试图并行运行5-6个图形查询,实际上我崩溃了服务器。 另一方面,我现在使用的一些脚本并行运行接近50-100个查询,没有问题。

答案 1 :(得分:0)

我有同样的问题。尝试使用@qualitech/Qneo4j npm软件包进行连接。

尝试使用autoclosedriver更改参数false

const QNeo4j = require('@qualitech/qneo4j')

// simplest
const db = new QNeo4j({
    url: 'bolt://localhost:7687'
})

// full options
const db = new QNeo4j({
    url: 'bolt://localhost:7687',
    username: 'neo4j',       // default: 'neo4j'
    password: 'admin',       // default: 'admin'

    // description: if true, returns raw value of the Neo4j.
    raw: false,              // default: false,

    // description: closes the Neo4j driver after the execute method or transaction.
    autoCloseDriver: true,   // default: true

    // description: expects to receive a callback function. This callback is called every time an error occurs within the QNeo4j module.
    notifyError: (error, query) => console.log(error, query),

    // description: all configuration available to the driver Neo4j can be set here. See more https://neo4j.com/docs/driver-manual/current/client-applications/
    driverConfig: {
        // ... neo4j driver configuration
    }
})

driverConfig中使用示例

{
  maxConnectionLifetime: 3 * 60 * 60 * 1000, // 3 hours
  maxConnectionPoolSize: 50,
  connectionAcquisitionTimeout: 2 * 60 * 1000 // 120 seconds
  connectionTimeout: 
  maxTransactionRetryTime: 
}

https://neo4j.com/docs/driver-manual/current/client-applications/中的所有选项