【问题标题】:Single node Cassandra behaving like multinode Cassandra单节点 Cassandra 的行为类似于多节点 Cassandra
【发布时间】:2018-11-08 07:56:29
【问题描述】:

我有一个访问 ReadTimeOutException 的单节点 Cassandra 集群,我在服务器中观察到以下日志,这对我来说似乎很奇怪,

ERROR [SharedPool-Worker-91] 2018-05-29 12:09:53,023 ErrorMessage.java:338 - Unexpected exception during request
java.lang.RuntimeException: org.apache.cassandra.exceptions.ReadTimeoutException: Operation timed out - received only 1 responses.
       at org.apache.cassandra.auth.CassandraRoleManager.getRole(CassandraRoleManager.java:489) ~[apache-cassandra-3.0.8.jar:3.0.8]
       at org.apache.cassandra.auth.CassandraRoleManager.getRoles(CassandraRoleManager.java:269) ~[apache-cassandra-3.0.8.jar:3.0.8]
       at org.apache.cassandra.auth.RolesCache.getRoles(RolesCache.java:66) ~[apache-cassandra-3.0.8.jar:3.0.8]
       at org.apache.cassandra.auth.Roles.hasSuperuserStatus(Roles.java:51) ~[apache-cassandra-3.0.8.jar:3.0.8]
       at org.apache.cassandra.auth.AuthenticatedUser.isSuper(AuthenticatedUser.java:71) ~[apache-cassandra-3.0.8.jar:3.0.8]

它说操作超时 - 只收到 1 个响应。,在单节点中为什么它说期望多个响应?可以解释一下吗。

注意:我为此 system_auth 键空间启用了不同的策略

CREATE KEYSPACE system_auth WITH replication = {'class': 'NetworkTopologyStrategy', 'datacenterproc': '1'}  AND durable_writes = true;

并将一致性级别设置为LOCAL_QUORUM

Cassandra 服务器版本:3.0.8

这会是一个原因吗?

【问题讨论】:

    标签: cassandra cassandra-3.0


    【解决方案1】:

    超过超时时间的 GC(如您在其他问题中发布的 9 秒 GC)可能会导致内部身份验证超时。很可能它收到了响应,进行了 GC,然后注册为超时。

    【讨论】:

    • 澄清一下:数据在协调器中接收但不发送给客户端?这是一个单节点,不需要等待其他副本的响应,那么为什么会有延迟
    • GC 或安全点暂停可能随时发生,包括在 ReadStage 完成请求并由数据解析器接收但尚未返回给客户端(在这种情况下不是客户端而是身份验证)之间提供者)。通常,您只会收到请求超时,但身份验证提供程序会在日志中打印完整的异常。如果你有长时间的停顿,你会得到超时。
    猜你喜欢
    • 1970-01-01
    • 2015-04-21
    • 2012-05-02
    • 2020-04-12
    • 2014-06-10
    • 1970-01-01
    • 2016-02-09
    • 1970-01-01
    • 2011-11-15
    相关资源
    最近更新 更多