2016-10-10 18 views
1

我目前有一个关系数据库,我计划迁移到neo4j。我们有apis公开了把id作为输入到像/ entity/{id}/relatedEntities等这些URL的输入。这些Ids是db生成的自动增量Ids。这些API的多个客户端可能已经缓存了Ids,以便保持我需要继续使用这些ID的向后兼容性。我的问题是在我开始添加新实体时迁移到neo4j后,如何在集群环境中特别继续生成这些id(我打算为neo4j拥有多个JVM和主/客户机节点)?如何使用neo4j获得自动增量

+0

向后兼容性被高估。 –

回答

1

从Neo4j 3.0.6开始,自动生成的序列不是功能集的一部分。

您可能能够定义具有指定序列标签的属性的序列节点,当您需要新数字时锁定该节点,然后增加并生成和解锁后,虽然这可能很尴尬。如果它是一个写操作,那么它应该在集群环境中工作,因为写操作应该在集群的主节点上执行,但其他具有该区域更多经验的人员可以确认或否认这一点。

一种替代方法是使用UUID而不是序列。您需要将它们作为字符串而不是整数来处理,并且您将失去基于生成的ID进行比较的能力,但APOC程序支持生成UUID,并且在数学上它们将是唯一的,并且不会有与以前使用的以前的数字ID相冲突。