gpt4 book ai didi

Cassandra 不可用异常 : Cannot achieve consistency level LOCAL_ONE

转载 作者:行者123 更新时间:2023-12-05 00:13:05 36 4
gpt4 key购买 nike

我有一个 3 节点 Cassandra 集群,其 key 空间的复制因子为 3:

CREATE KEYSPACE demo
WITH REPLICATION = {
'class':'SimpleStrategy',
'replication_factor':3
};

(仅部署在一个数据中心)

在进行故障测试时,即关闭一个节点,尝试对我的键空间进行查询时,我收到以下异常:
 Caused by: org.apache.cassandra.exceptions.UnavailableException: Cannot achieve consistency level LOCAL_ONE
at org.apache.cassandra.db.ConsistencyLevel.assureSufficientLiveNodes(ConsistencyLevel.java:296) ~[apache-cassandra-3.10.jar:3.10]
at org.apache.cassandra.service.AbstractReadExecutor.getReadExecutor(AbstractReadExecutor.java:162) ~[apache-cassandra-3.10.jar:3.10]
at org.apache.cassandra.service.StorageProxy$SinglePartitionReadLifecycle.<init>(StorageProxy.java:1774) ~[apache-cassandra-3.10.jar:3.10]
at org.apache.cassandra.service.StorageProxy.fetchRows(StorageProxy.java:1736) ~[apache-cassandra-3.10.jar:3.10]
at org.apache.cassandra.service.StorageProxy.readRegular(StorageProxy.java:1682) ~[apache-cassandra-3.10.jar:3.10]
at org.apache.cassandra.service.StorageProxy.read(StorageProxy.java:1597) ~[apache-cassandra-3.10.jar:3.10]
at org.apache.cassandra.db.SinglePartitionReadCommand$Group.execute(SinglePartitionReadCommand.java:997) ~[apache-cassandra-3.10.jar:3.10]
at org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:277) ~[apache-cassandra-3.10.jar:3.10]
at org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:247) ~[apache-cassandra-3.10.jar:3.10]
at org.apache.cassandra.auth.CassandraRoleManager.getRoleFromTable(CassandraRoleManager.java:521) ~[apache-cassandra-3.10.jar:3.10]
at org.apache.cassandra.auth.CassandraRoleManager.getRole(CassandraRoleManager.java:503) ~[apache-cassandra-3.10.jar:3.10]
... 47 common frames omitted

我不确定为什么会看到此错误,因为:
  • 我的复制因子设置为 3(即我仍然有 2 个节点,每个节点都包含所有数据)
  • 我的一致性级别设置为 QUORUM。 (为什么我看到的是 LOCAL_ONE?)
  • 最佳答案

    您在日志中看到的一致性级别是 Cassandra 在内部用于检索存储在 system_auth key 空间中的身份验证信息的一致性级别。

    Cassandra 使用 法定人数查询默认 Cassandra 用户“cassandra”的系统身份验证时

    Cassandra 使用 LOCAL_ONE 为其他用户查询 system_auth 时

    默认情况下,Cassandra 将 SimpleStrategy 用于 system_auth key 空间(不太好),复制因子为 1(不太好)。
    强烈建议改用 NetworkTopologyStrategy,并将每个数据中心的复制因子增加到至少 3。这应该可以解决您的问题。

    Apache Cassandra 文档中解释了所有内容:

    http://cassandra.apache.org/doc/latest/operating/security.html#authentication

    关于 Cassandra 不可用异常 : Cannot achieve consistency level LOCAL_ONE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49138568/

    36 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com