【问题标题】:Why connection is timing out frequently为什么连接经常超时
【发布时间】:2018-11-12 05:15:16
【问题描述】:

作为对这个问题的跟进:Enable one time Cassandra Authentication and Authorization check and cache it forever

我想知道我收到Request timed Out 错误,如果我在服务器日志中看到我只会收到以下错误。

ERROR [SharedPool-Worker-34] 2018-06-01 10:40:36,589 ErrorMessage.java:338 - Unexpected exception during request
java.lang.RuntimeException: org.apache.cassandra.exceptions.ReadTimeoutException: Operation timed out - received only 0 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]

我知道我没有在 cassandra.yaml 中启用身份验证和授权的缓存,但我仍然有人可以解释为什么我经常收到此错误,这是 Cassandra 中代价高昂的性能操作吗?

【问题讨论】:

    标签: cassandra datastax cassandra-3.0


    【解决方案1】:

    如果您使用默认 Cassandra 用户,则这是使用 QUORUM 的普通查询,任何其他用户都应该使用 LOCAL_ONE。所以就“运营成本”而言并没有什么异常。但鉴于错误消息(这部分具体为:“操作超时 - 仅收到 0 个响应。”)意味着您可能有无法响应您的查询的超载节点。

    使用 nodetool tpstats 快速查看您的节点会显示您是否在为读取提供服务时遇到问题(查找 blockedall time blocked 和/或 DROPPED 读取)。

    您执行的每个查询都会完成身份验证查询 (AFAIK),因此您应该为它们启用缓存(并避免集群过载)

    相关文档:https://docs.datastax.com/en/cassandra/3.0/cassandra/configuration/secureConfigNativeAuth.html

    【讨论】:

      猜你喜欢
      • 2019-11-09
      • 2017-10-30
      • 1970-01-01
      • 2012-07-30
      • 2010-10-22
      • 2018-11-21
      • 2011-12-02
      • 2018-06-14
      相关资源
      最近更新 更多