使用neo4j Replication作为体系结构的一部分

时间:2014-12-11 15:40:35

标签: neo4j architecture replication nosql

我正在研究一个有许多有界上下文的系统。一个上下文充当其他上下文的主数据。它包含用户,组织,分支机构等信息。

我正在尝试为每个其他子系统创建一个主记录neo4j实例,其中包含单独的neo4j实例。

使用neo4j复制将主记录信息复制到其他子系统中是否可行/可行,然后根据需要向子系统数据添加其他节点和关系?

这里的目的是防止主记录数据被来自其他子系统的数据所困扰。特别是一个子系统有一个非常密集的图形,我担心它会开始导致性能问题。

neo4j复制系统似乎主要用于HA,所以我不确定将它用作架构工具是否明智?

1 个答案:

答案 0 :(得分:1)

如果没有他们同步回主人,你就不能写信给Neo4j奴隶。

我可能会将各个数据库从主服务器同步(手动)到从服务器(例如使用tx提交处理程序或change-feed)。

然后,您可以使用个别特定信息增强您的依赖有界上下文。

您还可以使用事件源架构来分发输入,或者只是将写入/更新查询复制到所有数据库(例如,使用负载均衡器)。

只要你保持在域级别,它应该可以正常工作(因为你只匹配你的域的标签和属性,而不是neo4j node-id,这对于不同的机器可能是不同的)。

可能失败的唯一写入查询是删除尝试从主上下文删除节点的位置,但不能删除子上下文,因为它们也连接到子上下文中的其他信息。

因此,您可能必须使用更具侵略性的删除查询,以确保在删除节点之前删除节点的所有关系。