作为对这个问题的跟进: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中启用身份验证和授权的缓存,但是我仍然可以有人解释为什么我经常会出现这个错误,在中这是一个代价高昂的性能操作吗?
发布于 2018-06-04 13:16:19
如果您使用的是默认的Cassandra用户,那么它是一个具有仲裁的普通查询,任何其他用户都应该使用LOCAL_ONE。因此,就“运营成本”而言,没有什么不正常的地方。但是给出了错误消息(这个部分具体是:“操作超时-只接收到0响应”)。这意味着您可能有无法响应查询的重载节点。
快速查看使用nodetool tpstats的节点时,会发现在处理读取时是否有问题(查找阻塞的、一直阻塞的和/或丢弃的读取)。
Auth查询是针对您所做的每一个查询(AFAIK)完成的,因此您应该为它们启用缓存(并避免重载集群)。
相关文件:https://docs.datastax.com/en/cassandra/3.0/cassandra/configuration/secureConfigNativeAuth.html
https://stackoverflow.com/questions/50653982
复制相似问题