多数据中心中的JanusGraph"NoHostAvailableException"

sat*_*ner 3 cassandra cassandra-3.0 janusgraph

我们正在使用带有Cassandra 3.11.1的JanusGraph 0.2.0并测试其对地理多样性的支持.目前,我们有2个数据中心,每个数据中心有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
Run Code Online (Sandbox Code Playgroud)

当我们在数据中心的两个节点中运行Cassandra时,我们能够连接并创建JanusGraph键空间.但是,当一个数据中心出现故障时,如果我们尝试打开连接,我们会发现以下异常:

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)
Run Code Online (Sandbox Code Playgroud)

我们已经配置了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
Run Code Online (Sandbox Code Playgroud)

Jas*_*rad 7

这似乎是JanusGraph代码中的一个错误.我已经开了一个问题来追踪这个.在此期间,将此行添加到您的janusgraph-cassandra.properties是一个解决方法:

log.tx.key-consistent=true
Run Code Online (Sandbox Code Playgroud)