我正在使用java中的ogm构建一个neo4j ogm服务。我需要从我的服务连接到2个neo4j服务器来处理故障转移和复制。是否可以从一个ogm服务向不同的neo4j服务器创建多个会话。
答案 0 :(得分:1)
您可以理论创建多个SessionFactory
实例,指向不同的数据库实例并在两者上执行每个操作。只使用Java配置而不是属性文件(仅适用于OGM,SDN不会那么简单)。
有许多事情要注意:
您不能依赖自动生成的ID,因为它们在每个数据库实例上可能不同
写入2个实例时,写入第一个实例可能(由于各种原因 - 网络问题,延迟,并发等等)成功并写入第二个可能会失败,反之亦然 - 您的代码需要处理某种程度上
一般的并发性 - 依赖于数据库状态的查询在两个实例上的行为可能会有所不同,因为其中一个实例接收的更新比另一个更多(第二个是“后面”)
由于所有这些原因,我根本不会推荐这样的解决方案。
使用Neo4j的HA或因果群集会更好。请访问网站regarding licensing。