我在互联网上找不到这个问题的答案 是否有可能以分布式模式启动Neo4j以获得更好的性能?为什么/为什么不呢?
答案 0 :(得分:7)
听起来你在询问数据库分片。简短的回答是否定的,不支持此功能。
Neo4j有两种主要的群集模式,较早的HA (highly available) clustering和较新的Causal Clustering,都需要Enterprise Edition。在这两种情况下,参与集群的所有节点都必须包含整个图。
现在我会坚持使用因果聚类,因为功能开发正在继续。
就读取缩放而言,可以通过向集群添加只读副本来水平扩展。 bolt +路由协议确保使用驱动程序的显式读取事务被路由到其中一个关注者或一个只读副本,并在一定程度上考虑到负载。
对于写入缩放,这只是垂直的,因为一次只允许一个节点(当选的领导者)写入,因此确保所有核心节点(群集中可能被选为领导者的节点)足够RAM,磁盘空间和SSD至关重要。
答案 1 :(得分:1)
Neo4j Enterprise具有群集功能,但它具有高可用性。
例如,它不像TigerGraph那样碎片化。
群集中的每个实例(节点)都具有完整数据集的复制。
答案 2 :(得分:0)
neo4j企业版支持Highly Available Clusters。其他进一步的文档是here。
答案 3 :(得分:0)
是的,但仅在企业模式下。它具有主从结构。主服务器负责写请求,而从服务器负责读流量。有关详细信息,请参见Understanding Neo4j Scalability。
但是,如果由于某种原因(例如不在我们的预算中)而使企业版不在您的预算之内,我们将建立一个多主机社区版集群,并使用两个阶段的提交使主机保持同步。