我想知道是否有人成功配置Rexster-server以使用Neo4j-2.0.1-HA?我读了一些关于可比性的线索,但从未找到一个好的解决方案。
我从master中取出了最新的rexster源(2.5.0-SNAPSHOT)并构建了它。在配置Neo4j2.0.1和rexster后,我尝试启动rexster时出现以下错误。
线程“main”中的异常java.lang.NoSuchMethodError:org.neo4j.kernel.GraphDatabaseAPI.getNodeManager()Lorg / neo4j / kernel / impl / core / NodeManager;
Rexster配置如下。
<graph>
<graph-enabled>true</graph-enabled>
<graph-name>KooboodleGraph</graph-name>
<graph-type>neo4jgraph</graph-type>
<graph-location>/mnt/neo4j/data/graph.db</graph-location>
<!-- <graph-location>http://x.x.x.x:7474/db/data</graph-location> -->
<graph-high-availability>true</graph-high-availability>
<extensions>
<allows>
<allow>tp:gremlin</allow>
<allow>zeus-v1:*</allow>
</allows>
</extensions>
<properties>
<neostore.nodestore.db.mapped_memory>285M</neostore.nodestore.db.mapped_memory>
<neostore.relationshipstore.db.mapped_memory>285M</neostore.relationshipstore.db.mapped_memory>
<neostore.propertystore.db.mapped_memory>100M</neostore.propertystore.db.mapped_memory>
<neostore.propertystore.db.strings.mapped_memory>100M</neostore.propertystore.db.strings.mapped_memory>
<neostore.propertystore.db.arrays.mapped_memory>10M</neostore.propertystore.db.arrays.mapped_memory>
<neostore.propertystore.db.index.mapped_memory>10M</neostore.propertystore.db.index.mapped_memory>
<neostore.propertystore.db.index.keys.mapped_memory>10M</neostore.propertystore.db.index.keys.mapped_memory>
<ha.machine_id>1</ha.machine_id>
<ha.server>x.x.x.x:6001</ha.server>
<ha.cluster_server>x.x.x.x:5001-5099</ha.cluster_server>
<ha.initial_hosts>x.x.x.x:5001,x.x.x.x:5001</ha.initial_hosts>
</properties>
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-ha</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-management</artifactId>
<version>2.0</version>
</dependency>
</graph>
任何帮助或想法都会受到很大的影响。
谢谢!
答案 0 :(得分:1)
看起来Rexter依赖于Neo4j的非公共API。由于Neo4j的许多内部已经从1.x变为&gt; 2.x我的猜测是Rexter没有跟进这些变化。例如。 GraphDatabaseAPI
是非公开API的一部分。
Neo4j的公共API记录在http://api.neo4j.org/。
要解决此问题,需要对Rexter的代码库进行适当修补。
答案 1 :(得分:1)
请查看Rexster专用于Neo4j2的新分支:
https://github.com/tinkerpop/rexster/tree/neo4j2
Rexster不会以任何方式直接引用Neo4j API(它仅在Blueprints上运行),但是在主分支中设置事物的方式存在许多命名冲突和事件。我不完全确定TinkerPop将如何最终释放Rexster对Neo4j2的支持...有些人认为需要它,但至少在此之前可以构建该分支以开始游戏。
答案 2 :(得分:0)
Rexster配置是ha.machine_id但是Neo4j HA配置是ha.server_id,然后是Rexster + Neo4j2,然后rexster.xml包含它们。