neo4j查询执行

时间:2018-12-13 16:23:12

标签: neo4j

我已经设置了一个Neo5j集群,该集群具有5个核心服务器,没有只读副本。我想了解Neo4j如何进行负载平衡并分配查询执行。据我所知,发给集群的每个查询仅在一个节点(核心/读取副本)上执行,每个节点将维护图数据库的副本。所谓节点,是指可以是核心服务器或只读副本的机器。

在这种情况下,为了在5台核心服务器上分布查询执行,我应该每次查询领导者节点还是应该查询所有5台核心服务器?领导者节点会负责将查询定向到群集中最可用或最合适的节点吗?如果我们有1)集群中只有核心服务器,或者2)集群中有核心/只读副本的组合,那么有人可以解释负载均衡的工作原理吗?

我已经浏览了Neo4j文档链接:https://neo4j.com/docs/operations-manual/current/clustering/introduction/,但是我不清楚负载平衡和查询分配如何工作。谢谢。

1 个答案:

答案 0 :(得分:0)

这可能是我们可以改进的地方,请确保在此部分中对路由操作进行了概述。

在集群中不会进行路由,但是在使用bolt + routing协议以及将会话或事务显式标记为WRITE或READ事务时,via the driver会发生。

使用bolt + routing协议时,在与集群的初始连接时,驱动程序将请求并获得一个路由表,以便它知道集群中的哪些节点具有什么角色(此表会定期更新)。驱动程序将使用该表来路由在代码中显式创建为READ或WRITE事务的事务。

WRITE交易将始终路由到领导者。使用循环方法将READ事务路由到跟随者或只读副本节点之一(除非另有配置)。