Почему время ожидания соединения часто - PullRequest
0 голосов
/ 02 июня 2018

В качестве продолжения этого вопроса: Включите один раз проверку подлинности и авторизации Cassandra и сохраните ее в кэше навсегда

Я хотел бы понять, что я получаю ошибку 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, но все же я Может кто-нибудь объяснить, почему я получаюэта ошибка часто, это дорогостоящая операция производительности в Кассандре?

1 Ответ

0 голосов
/ 04 июня 2018

Если вы используете пользователя Cassandra по умолчанию, это обычный запрос с QUORUM, любой другой пользователь должен использовать LOCAL_ONE.Так что с точки зрения «стоимости эксплуатации» нет ничего ненормального.Но с учетом сообщения об ошибке (эта часть, в частности: «Тайм-аут операции - получено только 0 ответов») означает, что вы, вероятно, перегружены узлами, которые не могут отвечать на ваши запросы.

Быстрый просмотр ваших узлов с помощью nodetool tpstats покажет, если у вас возникли проблемы с обслуживанием ваших чтений (ищите заблокирован , все время заблокирован и / или УДАЛЕНО читает).

Запросы аутентификации выполняются с каждым выполняемым вами запросом (AFAIK), поэтому вам следует включить для них кэши (и избегать перегрузки кластера)

Соответствующая документация: https://docs.datastax.com/en/cassandra/3.0/cassandra/configuration/secureConfigNativeAuth.html

...