作为对此问题的跟进: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]
错误,如果我在服务器日志中看到,则只会出现以下错误。
player_id | goals
1 5
2 2
3 1
据我所知,我没有在cassandra.yaml中启用身份验证和授权的缓存,但我仍然有人可以解释为什么我经常收到此错误,这在Cassandra中是否代价高昂?
感谢任何帮助。
谢谢,
哈利
答案 0 :(得分:2)
如果您使用的是默认的Cassandra用户,则使用QUORUM进行常规查询,任何其他用户都应该使用LOCAL_ONE。所以在“运营成本”方面并不是什么异常。但是给出了错误消息(这部分具体:“操作超时 - 仅收到0个响应。”)意味着您可能有超载的节点无法响应您的查询。
使用 nodetool tpstats 快速查看您的节点会显示您是否在阅读时遇到问题(查找已阻止,始终被阻止和/或 DROPPED 读取。)
对您执行的每个查询(AFAIK)进行身份验证查询,因此您应该为它们启用缓存(并避免群集过载)
相关文档:https://docs.datastax.com/en/cassandra/3.0/cassandra/configuration/secureConfigNativeAuth.html