JanusGraph在多数据中心出现"NoHostAvailableException"问题

3
我们正在使用JanusGraph 0.2.0与Cassandra 3.11.1,并测试其对地理多样性的支持。目前我们有两个数据中心,每个数据中心都有一个节点,复制因子对于这两个数据中心都是1。 janusgraph-cassandra.properties
storage.backend=cql
storage.cql.read-consistency-level=LOCAL_QUORUM
storage.cql.write-consistency-level=LOCAL_QUORUM
storage.cql.local-datacenter=dc2
storage.cql.only-use-local-consistency-for-system-operations=true
storage.cql.replication-strategy-options=dc1,1,dc2,1
storage.cql.replication-strategy-class = NetworkTopologyStrategy

当我们在数据中心的两个节点上运行Cassandra时,我们能够连接并创建JanusGraph keyspace。但是,当一个数据中心宕机时,如果我们尝试打开连接,我们会观察到以下异常:

com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: /10.249.55.111:9042 (com.datastax.driver.core.exceptions.UnavailableException: Not enough replicas available for query at consistency QUORUM (2 required but only 1 alive)))
        at com.datastax.driver.core.RequestHandler.reportNoMoreHosts(RequestHandler.java:211)

我们已经配置了Local_Quorum,但是为什么它在建立连接时仍然使用Quorum?
更新:nodetool状态输出。
Datacenter: dc1
===============
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address        Load       Tokens       Owns (effective)  Host ID                               Rack
DN  10.249.55.108  283.54 KiB  256          100.0%            619242db-f0bd-4492-aeb6-2bb0ebfe4733  rack1
Datacenter: dc2
===============
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address        Load       Tokens       Owns (effective)  Host ID                               Rack
UN  10.249.55.111  294.75 KiB  256          100.0%            6ebe897e-94e3-44e5-99dc-055beb633e74  rack1

你能否粘贴“nodetool status”的输出结果? - dilsingi
感谢您的关注,我已经添加了nodetool状态输出。 - satlearner
1个回答

7
这似乎是JanusGraph代码中的一个错误。我已经开了一个问题来追踪它。同时,将这一行添加到您的janusgraph-cassandra.properties中是一种解决方法:
log.tx.key-consistent=true

谢谢Jason Plurad。你能解释一下log.tx.key-consistent参数的重要性吗? - satlearner
这告诉图形,事务日志正在使用键一致的后端(例如Apache Cassandra或Apache HBase)。因此,在连接到事务日志表时,它将拉入属性文件中的配置属性。如果没有该设置,它将使用默认的一致性级别“QUORUM”。 - Jason Plurad
感谢Jason Plurad。 - satlearner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接