我们当前的实现通过REST调用Neo4j。我们正在通过新的java驱动程序替换一些代码。我们在性能上存在一些问题,我们试图通过优化Cypher和将负载从Neo4j DB转移到应用层来解决这些问题。使用java驱动程序,它将进一步减少Neo4j DB上的负载,还是只会在减少网络延迟方面有所帮助?
发布于 2017-12-19 06:39:22
在某些情况下,驱动程序是比较理想的。版本1.5还将允许异步操作。下一个主要版本还将提供背压和反应操作。
它不再需要生成JSON,而是会流一个二进制协议。因此,这可能会减少一些负载。我不确定,它会有很大的影响。
最好量一下你自己。
发布于 2017-12-20 11:11:48
我做了一些测试,下面是一些不太令人鼓舞的结果。
Windows有16 to内存,100 K节点本地连接到Neo4j。
字符串defaultNodes = "1000";
if(args.length > 0) {
defaultNodes = args[0];
}字符串查询=“匹配(n)返回n限制”+默认节点;
long time = System.currentTimeMillis();
session.run(query);
System.out.println("With bolt for LIMIT "+defaultNodes+" -- "+(System.currentTimeMillis() - time));
time = System.currentTimeMillis();
Neo4jRESTHandler dbHandler = new Neo4jRESTHandler();
dbHandler.executeCypherQuery(query);
System.out.println("With REST for LIMIT "+defaultNodes+" -- "+(System.currentTimeMillis() - time));neo4jtestexamples-1.0.0-SNAPSHOT-jar-with-dependencies.jar C:\Migration>java -jar
上限为1000 -- 131的螺栓
限制为1000 - 162
neo4jtestexamples-1.0.0-SNAPSHOT-jar-with-dependencies.ja C:\Migration>java -jar r
上限为1000 - 143的螺栓
限制为1000 - 156
neo4jtestexamples-1.0.0-SNAPSHOT-jar-with-dependencies.ja C:\Migration>java -jar r 10000
带螺栓10000 -- 377
限10000 - 156休息
neo4jtestexamples-1.0.0-SNAPSHOT-jar-with-dependencies.ja C:\Migration>java -jar r 10000
上限为10000 -- 335的螺栓
限10000 -- 157休息
neo4jtestexamples-1.0.0-SNAPSHOT-jar-with-dependencies.ja C:\Migration>java -jar r
上限为1000 - 104的螺栓
限制为1000 - 161
neo4jtestexamples-1.0.0-SNAPSHOT-jar-with-dependencies.ja C:\Migration>java -jar r 25000
带螺栓25000 -- 595
限制为25000 - 155
neo4jtestexamples-1.0.0-SNAPSHOT-jar-with-dependencies.ja C:\Migration>java -jar r 25000
带螺栓25000 -- 544
限25000 -- 151休息
https://stackoverflow.com/questions/47880712
复制相似问题