cassandra - 为什么连接经常超时

标签 cassandra datastax cassandra-3.0

作为此问题的后续:Enable one time Cassandra Authentication and Authorization check and cache it forever

我想了解我收到请求超时错误,如果我在服务器日志中看到我只收到以下错误。

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 用户,则这是使用 QUORUM 的正常查询,任何其他用户都应使用 LOCAL_ONE。所以在“运营成本”方面并没有什么异常。但给出错误消息(具体来说,这部分是:“操作超时 - 仅收到 0 个响应。”)意味着您可能有重载的节点,无法响应您的查询。

使用nodetool tpstats快速查看您的节点将显示您在提供读取服务时是否遇到问题(查找被阻止所有时间被阻止和/或<强>删除读取)。

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

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

关于cassandra - 为什么连接经常超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50653982/

相关文章:

cassandra - 如何理解Cassandra中的 'Flexible schema'?

Cassandra 即服务

cassandra - 如何更改 yum 安装位置?

cassandra - 使用 yum 安装 cassandra datastax 企业版 : how to set username & password

Cassandra : Multiple tables vs materialized view

cassandra - 想要了解表格直方图的输出

java - Ignite C++ 客户端用于 cassandra 集成

python - 登录失败: 'NoneType' object has no attribute 'cancel'

spring-boot - 错误 :docker Spring boot container : java. lang.IllegalArgumentException:无法解析值 'CASSANDRA_HOST' 中的占位符 "${CASSANDRA_HOST}"

cassandra - cassandra 3.0.x 和 3.11.x 版本之间的差异