RESTAPI或JavaAPI之间的选择
最近几天我一直在读关于neo4j的书。我对是否需要使用RESTAPI或是否可以使用JavaAPI感到非常困惑RESTAPI或JavaAPI之间的选择,java,api,rest,scalability,neo4j,Java,Api,Rest,Scalability,Neo4j,最近几天我一直在读关于neo4j的书。我对是否需要使用RESTAPI或是否可以使用JavaAPI感到非常困惑 我需要创建数百万个节点,这些节点之间会有一些连接。我想在几个节点属性上添加索引以进行搜索。最初,我使用Java API开始使用GraphDB的嵌入式模式,但很快就达到了OutOfMemory,在少数节点上建立索引,因此我认为如果我的neo4j作为服务运行,我通过REST API连接到它,那么它将通过将输入/输出数据交换到底层文件来自行完成所有内存管理。我的假设正确吗 此外,我还计划将我的
OutOfMemory
,在少数节点上建立索引,因此我认为如果我的neo4j作为服务运行,我通过REST API连接到它,那么它将通过将输入/输出数据交换到底层文件来自行完成所有内存管理。我的假设正确吗从内存中删除异常吗?这听起来像是在同一个事务中创建所有这些节点,这使它位于内存中。尝试一次提交小块,以便Neo4j
可以将其写入磁盘。除了缓存之类的东西外,您不必管理Neo4j的内存
使用RESTAPI有一些您没有提到的缺点,这与事务类似。如果要执行原子操作,需要创建多个节点、关系、更改属性,并且如果任何步骤失败而没有提交其中任何一个,则不能在RESTAPI中执行此操作 从RESTfull的角度讲,您可以通过处理文档的POST来执行复杂的操作,该POST告诉系统要做什么(POST,因为它不是幂等的)。然而,除非您在各种事情上对描述性元数据做大量额外工作,否则此类机制的可发现性不是很好。是的,我不是在抨击
RESTful
web服务,而是事实上Neo4j
不允许跨多个REST
调用进行事务处理。您确定在集群中运行时,所有实例都包含相同的数据?我想我读过一篇关于发行版的文章,其中的实例只是在它们之间共享一部分数据,而不是全部。谢谢大家!1.“这听起来像是在同一个事务中创建所有这些节点,这会导致它驻留在内存中。”我将对此进行检查。但我的感觉是,当我尝试向索引中添加节点时,我面临OOM,这些节点是在节点的各种属性上创建的。在我的例子中,我有50多个属性需要搜索,因此将它们全部添加到索引中。2.从您的评论来看,保留副本似乎是为了负载平衡,以提高查询性能,而不是在存储方面具有可扩展性。但当我谈到分布式模式时,我需要在存储方面扩展它。我很欣赏有关节点/关系大小的信息,但在某些情况下,它仍将是一个限制因素。Mine是一种数据仓库系统,我们不断添加每日/每月数据,同时仍希望保留旧数据。这个问题仍然悬而未决&这也是一个固有的问题,即我是否只需要在分布式模式下使用restapi。