0

У меня есть кластер Cassandra (открытый источник Datastax), и в настоящее время нет настроенной аутентификации (т. Е. Используется AllowAllAuthenticator), и я хочу использовать PasswordAuthenticator. official document говорит, что я должен выполнить следующие действия:Включить аутентификатор паролей Cassandra во время работы

  1. позволяют PasswordAuthenticator в cassandra.yaml,

  2. рестарт узел, Cassandra, которые создадут system_auth,

    пространство ключей
  3. изменения репликации system_auth фактор,

  4. создание нового пользователя и пароль

Однако это большая проблема для меня, потому что кластер используется в производстве, поэтому у нас не может быть простоев. Между шагами 2 и 4 пользователь еще не настроен, поэтому, даже если клиент поставляет имя пользователя и пароль, запрос все равно будет отклонен, что не является идеальным.

Я просмотрел Datastax Enterprise doc и имеет класс TransitionalAuthenticator, который создавал бы пространство ключей system_auth, но без отклонения запросов. Интересно, можно ли поместить этот класс в версию с открытым исходным кодом? Или, если есть другие способы решения этой проблемы? Благодаря

Update Это версия Кассандры я использую:

cqlsh 4.1.1 | Cassandra 2.0.9 | CQL spec 3.1.1 | Thrift protocol 19.39.0 

ответ

1

Вы должны быть в состоянии выполнить шаги 2-4 с только один узел и имеет нулевое время простоя, при условии правильной конфигурации клиента, репликации и емкости кластера. Затем это всего лишь перезапуск остальных узлов.

Клиенты должны быть настроены с учетными данными заблаговременно, и они начнут использовать их в качестве узлов, поскольку узлы с авторизаторами подключаются к сети (это может зависеть от драйвера - сначала попробуйте).

Возможно, вы сможете вручную сгенерировать схему и данные для шагов 3-4, прежде чем задействовать CassandraAuthenticator, но это не обязательно.

В чем вы обеспокоены простоями?

+0

Спасибо за ваш ответ. Клиент действительно настроен для отправки учетных данных, а также способен загружать баланс между узлами. Есть две проблемы: 1) если клиент не может подключиться к одному узлу, он попробует следующее, что потребует дополнительного времени запроса (это критически важная для системы), и 2) другие узлы могут внезапно испытывать большие объем запросов, которые замедлят или даже сбой их. – stackoverflower

+0

В зависимости от того, какой клиентский драйвер, с которым вы используете нисходящий узел, должен быть выведен из балансировки нагрузки, поэтому дальнейшие запросы не будут учитываться вообще. Если это приложение не может поддерживать отключение одного узла, у вас нет способа сделать это или многие другие задачи обслуживания. –

Смежные вопросы