单节点集群的 Cassandra 轻量级事务失败

Cassandra light weight transactions are failing for a single node cluster

我有一个用于简单开发活动的单节点 Cassandra 集群。 所有使用都正常,但是如果我尝试执行 LWT,则查询失败并显示一条消息,指示没有足够的主机可用。

如果配置了更多主机,这是有意义的,但是如果所有主机都可用,即 1,那么应该会成功。

CQLSH 中的错误是 NoHostAvailable。 使用C# driver from Datastax出现不管一致性级别,我试了好几个,错误是:

Not enough replicas available for query at consistency Quorum (2 required but only 1 alive)

有趣的是,如果我只是从 CQL 中删除 "IF NOT EXISTS",那么查询就会成功。

如果集群中只有一个节点,是否还要使用 Paxos?

Cassandra 版本:

 [cqlsh 5.0.1 | Cassandra 3.0.11.1485 | CQL spec 3.4.0 | Native protocol v4]

键空间:

CREATE KEYSPACE "XYZ" WITH replication = {'class': 'NetworkTopologyStrategy', 'Cassandra': '1', 'Solr': '1'}  AND durable_writes = true;

节点工具环:

    administrator@cassandra-dev01:~$ nodetool ring

Datacenter: Cassandra
==========
Address       Rack        Status State   Load            Owns                Token

10.10.98.200  rack1       Up     Normal  106.92 GB       ?                   -8300708032273586829

Datacenter: SearchGraphAnalytics
==========
Address       Rack        Status State   Load            Owns                Token

10.10.98.201  rack1       Up     Normal  13.79 MB        ?                   4478178638510484591

数据中心 Solr 中的节点似乎已关闭或无法访问。当您只说法定人数而不是本地法定人数时,它实际上会根据您的描述转到另一个节点。