到目前为止,我们正在使用 http 端点进行读取查询,并计划转移到 java bolt 驱动程序。但在最初的测试中,观察到螺栓驱动程序比 http 端点慢。以下是我们正在使用的 java 驱动程序代码。
在应用程序上下文级别创建的驱动程序实例:Driver neo4jReadDriver = GraphDatabase.driver("bolt://xyz.com", AuthTokens.basic("neo4j","neo4j" ), Config.build().withMaxSessions(20).toConfig ());
执行查询的应用程序代码:
Session session = neo4jReadDriver .session();
StatementResult result = session.run( "MATCH(p:GOE) return count(p) as cnt");
while ( result.hasNext() )
{
Record record = result.next();
System.out.println("Total number of GOEs:"+ record.get( "cnt").asInt());
}
result.consume();
session.close();
driver.close();
此查询始终花费两倍于 http 端点的时间。大部分时间花在 driver.getSession() 上。我在这里做错什么了吗?如何在并发用户执行读取查询的情况下使用 Bolt Java 驱动程序获得高吞吐量?