【问题标题】:Neo4j performance Neo4j REST API Vs Neo4j Java DriverNeo4j 性能 Neo4j REST API 与 Neo4j Java 驱动程序
【发布时间】:2017-12-19 05:48:06
【问题描述】:

我们当前的实现通过 REST API 对 Neo4j 进行了所有调用。我们正在通过 neo4j-java-driver 替换部分代码。 我们遇到了一些性能问题,我们试图通过 Cypher 优化和将负载从 Neo4j DB 转移到应用层来解决这些问题。 使用 java 驱动程序,它会进一步减少 Neo4j DB 的负载还是仅仅有助于减少网络延迟?

【问题讨论】:

  • 请加入 neo4j.com/slack 并为您的 Cypher 优化获得更多帮助。
  • 谢谢迈克尔。我已加入 slack,并将在那里发布我的 Cypher 优化查询。

标签: rest neo4j neo4j-java-api


【解决方案1】:

驱动程序在某些方面更加优化。 1.5 版也将允许 异步操作。下一个主要版本还将提供背压和反应式操作。

它不再需要生成 JSON,而是流式传输二进制协议。所以这可能会减少一点负载。我不确定,它会产生很大的影响。

最好自己衡量。

【讨论】:

  • 请查看以下答案。抱歉,我忘记将其添加为评论。
【解决方案2】:

我做了一些测试,下面是结果,不太令人鼓舞

具有 16GB RAM、100K 节点的 Windows,本地连接到 Neo4j。

String defaultNodes = "1000";

    if(args.length > 0) {
        defaultNodes = args[0];
    }

String query = "MATCH(n) return n LIMIT "+defaultNodes;

        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));

C:\Migration>java -jar neo4jtestexamples-1.0.0-SNAPSHOT-jar-with-dependencies.jar

LIMIT 1000 -- 131 带螺栓

使用 REST 限制 1000 -- 162

C:\Migration>java -jar neo4jtestexamples-1.0.0-SNAPSHOT-jar-with-dependencies.ja r

LIMIT 1000 -- 143 带螺栓

使用 REST 限制 1000 -- 156

C:\Migration>java -jar neo4jtestexamples-1.0.0-SNAPSHOT-jar-with-dependencies.ja r 10000

LIMIT 10000 -- 377 带螺栓

使用 REST 限制 10000 -- 156

C:\Migration>java -jar neo4jtestexamples-1.0.0-SNAPSHOT-jar-with-dependencies.ja r 10000

LIMIT 10000 -- 335 带螺栓

使用 REST 限制 10000 -- 157

C:\Migration>java -jar neo4jtestexamples-1.0.0-SNAPSHOT-jar-with-dependencies.ja r

LIMIT 1000 -- 104 带螺栓

使用 REST 限制 1000 -- 161

C:\Migration>java -jar neo4jtestexamples-1.0.0-SNAPSHOT-jar-with-dependencies.ja r 25000

带螺栓 LIMIT 25000 -- 595

使用 REST 限制 25000 -- 155

C:\Migration>java -jar neo4jtestexamples-1.0.0-SNAPSHOT-jar-with-dependencies.ja r 25000

LIMIT 25000 -- 544 带螺栓

使用 REST 限制 25000 -- 151

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-01
    相关资源
    最近更新 更多