Neo4j HA(嵌入式)通过Spring?

时间:2013-05-13 14:28:30

标签: spring neo4j high-availability

使用1.8.2 - 尝试设置(最初)一个双节点HA群集。

的“22.5.4。在HA模式下启动Neo4j Embedded”部分

http://docs.neo4j.org/chunked/stable/ha-setup-tutorial.html

我已将以下内容添加到我的pom.xml中:

<dependency>
   <groupId>org.neo4j</groupId>
   <artifactId>neo4j-ha</artifactId>
   <version>${neo4j-version}</version>
</dependency>

并将我的application-content.xml修改为以下内容:

<neo4j:config graphDatabaseService="graphDatabaseService" />

<context:property-placeholder 
        location="file:/etc/whiteRabbit.properties" />

<bean id="graphDatabaseService" class="org.neo4j.kernel.HighlyAvailableGraphDatabase"
                destroy-method="shutdown" scope="singleton">
                <constructor-arg index="0" value="${database.path}" />
                <constructor-arg index="1"> 
                        <map>
                                <entry key="ha.server_id" value="${server.id}"></entry>
                                <entry key="ha.server" value="${ha.server.address}:${ha.server.port}"></entry>
                                <entry key="ha.coordinators" value="${coordinators}"></entry>
                                <entry key="enable_remote_shell" value="port=1331"></entry>
                                <entry key="ha.pull_interval" value="1"></entry>
                        </map>
                </constructor-arg>
</bean>

/etc/whiteRabbit.properties包含:

节点1(地址:192.168.1.68)

server.id=1
ha.server.address=localhost
ha.server.port=6001
database.path=/databases/data/graph.db
coordinators=localhost:2181,192.168.1.100:2181

和节点2(地址192.168.1.100)

server.id=2
ha.server.address=localhost
ha.server.port=6001
database.path=/databases/data/graph.db
coordinators=localhost:2181,192.168.1.68:2181

当我启动每个实例时,我会获得正常的启动日志,然后

14:57:58.171 [localhost-startStop-1] INFO  neo4j - WARNING! Deprecated configuration options used. See manual for details

14:57:58.171 [localhost-startStop-1] INFO  neo4j - neo4j.ext.udc.disable has been replaced with neo4j.ext.udc.enabled

14:57:58.171 [localhost-startStop-1] INFO  neo4j - cannot configure writers and searchers individually since they go together

(只有前两个与HA的变化有关)

然后......没什么....(!)

启动只是停在那里。鉴于上面提到的页面中独立服务器的设置配置提到启动协调器实例作为流程的一个单独部分,我需要在这里手动完成这项工作吗?或者应该只照顾自己?如何查找日志信息以开始解决为什么我只是看到节点挂起?如果我只启动一个节点,BTW行为也没有什么不同 - 相同的挂起,在日志中的相同位置......

我猜我错过了一些简单的东西?

d

1 个答案:

答案 0 :(得分:1)

您可以在属性文件中提取bean。另外,要使用HA,您可以使用类HighlyAvailableGraphDatabase。做这样的事情:

<bean id="configuration" class="org.neo4j.helpers.collection.MapUtil" factory-method="load">
    <constructor-arg value="/etc/whiteRabbit.properties" />
</bean>

<bean id="graphDatabaseService" class="org.neo4j.kernel.HighlyAvailableGraphDatabase" destroy-method="shutdown" scope="singleton">
    <constructor-arg name="storeDir" index="0" value="${database.path}" />
    <constructor-arg name="config" index="1" ref="configuration" />
</bean>

但是configuration bean应该指向neo4j.properties文件,您可以包含上面的所有属性。