Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Neo4j HA(2.0-Snapshot),等待群集选择主服务器时超时_Java_Neo4j_Cypher - Fatal编程技术网

Java Neo4j HA(2.0-Snapshot),等待群集选择主服务器时超时

Java Neo4j HA(2.0-Snapshot),等待群集选择主服务器时超时,java,neo4j,cypher,Java,Neo4j,Cypher,我有一个非常简单的Neo4j HA设置,其中有一个主实例和一个嵌入式HA实例,我想将其用于批量数据加载。以下是主实例配置(我“正常”启动的配置,作为windows服务): 我希望能够根据需要启动和停止嵌入式设备。下面是我在Java应用程序中加载的配置: node_auto_indexing=true node_keys_indexable=key,annotation relationship_auto_indexing=true relationship_keys_indexable=key,

我有一个非常简单的Neo4j HA设置,其中有一个主实例和一个嵌入式HA实例,我想将其用于批量数据加载。以下是主实例配置(我“正常”启动的配置,作为windows服务):

我希望能够根据需要启动和停止嵌入式设备。下面是我在Java应用程序中加载的配置:

node_auto_indexing=true
node_keys_indexable=key,annotation
relationship_auto_indexing=true
relationship_keys_indexable=key, weight, label
keep_logical_logs=true

org.neo4j.server.database.mode=HA
ha.server_id=2
ha.slave_only=true

ha.initial_hosts=:5001
ha.server=:6002
ha.cluster_server=:5002

ha.pull_interval=10
cypher_parser_version=2.0
其思想是能够作为单个/独立节点启动第一个(windows服务)实例,并在需要时启动批处理加载程序

问题

我可以像往常一样成功启动windows服务并启动查询。当我启动我的应用程序时,它连接良好,充当从节点的角色。我可以毫无问题地加载数据,主节点似乎处于同步状态,工作正常。现在,如果Java应用程序因任何原因崩溃或完成并关闭,主实例将停止工作,对于任何Cypher查询,都将返回以下跟踪:

TransactionFailureException
Timeout waiting for cluster to elect master
StackTrace:
org.neo4j.kernel.ha.HighlyAvailableGraphDatabase.beginTx(HighlyAvailableGraphDatabase.java:207)
org.neo4j.kernel.TransactionBuilderImpl.begin(TransactionBuilderImpl.java:39)
org.neo4j.kernel.InternalAbstractGraphDatabase.beginTx(InternalAbstractGraphDatabase.java:882)
org.neo4j.cypher.ExecutionEngine.prepare(ExecutionEngine.scala:102)
org.neo4j.cypher.ExecutionEngine.execute(ExecutionEngine.scala:70)
org.neo4j.cypher.ExecutionEngine.execute(ExecutionEngine.scala:85)
org.neo4j.cypher.javacompat.ExecutionEngine.execute(ExecutionEngine.java:80)
org.neo4j.server.rest.web.CypherService.cypher(CypherService.java:95)
java.lang.reflect.Method.invoke(Unknown Source)
org.neo4j.server.rest.security.SecurityFilter.doFilter(SecurityFilter.java:112)
我的配置有没有做错什么


顺便说一句:如果我重新启动第二个实例,主实例将返回“正常”。这是预期的行为。就集群而言,集群中有两个实例,如果其中一个出现故障,则没有仲裁,因此出于安全原因,它变得不可用。在您的设置中,解决此问题的方法是在主实例上启动一个单独的仲裁器,以便始终有三分之二的实例可用,因此集群被认为是正常的。

这是预期的行为。就集群而言,集群中有两个实例,如果其中一个出现故障,则没有仲裁,因此出于安全原因,它变得不可用。在您的设置中,解决此问题的方法是在主实例上启动一个单独的仲裁器,以便始终有三分之二的实例可用,因此集群被视为可用。

谢谢您提供的信息。因此,任何HA设置的最小值都是两个节点,它们必须始终处于启动状态。@rickard berg你能提供一些指导吗?我如何启动仲裁器实例?我也查阅了官方文件,但无法按照回答管理上面的内容。谢谢你提供的信息。因此,任何HA设置的最小值都是两个节点,它们必须始终处于启动状态。@rickard berg你能提供一些指导吗?我如何启动仲裁器实例?我也查阅了官方文件,但无法按照回答管理上述内容。
TransactionFailureException
Timeout waiting for cluster to elect master
StackTrace:
org.neo4j.kernel.ha.HighlyAvailableGraphDatabase.beginTx(HighlyAvailableGraphDatabase.java:207)
org.neo4j.kernel.TransactionBuilderImpl.begin(TransactionBuilderImpl.java:39)
org.neo4j.kernel.InternalAbstractGraphDatabase.beginTx(InternalAbstractGraphDatabase.java:882)
org.neo4j.cypher.ExecutionEngine.prepare(ExecutionEngine.scala:102)
org.neo4j.cypher.ExecutionEngine.execute(ExecutionEngine.scala:70)
org.neo4j.cypher.ExecutionEngine.execute(ExecutionEngine.scala:85)
org.neo4j.cypher.javacompat.ExecutionEngine.execute(ExecutionEngine.java:80)
org.neo4j.server.rest.web.CypherService.cypher(CypherService.java:95)
java.lang.reflect.Method.invoke(Unknown Source)
org.neo4j.server.rest.security.SecurityFilter.doFilter(SecurityFilter.java:112)