Ошибка с настройкой многоузловой кассандры + соединение - PullRequest
0 голосов
/ 02 июля 2018

Итак, я пытаюсь настроить многоузловой кластер кассандры.

Я установил 3 узла Кассандры на 3 разных серверах. Во всех трех файлах cassandra.yaml я определил один и тот же начальный узел. После очистки данных и перезапуска сервисов одна за другой, я вижу, как они отображаются, и в состоянии nodetool отображается UN для всех записей. Теперь я использую Express-Cassandra для подключения к Cassandra, и это работает просто отлично, но это работает только для первых нескольких запросов, а затем, просто сбой со следующей ошибкой -

Error during find query on DB -> ResponseError: Server failure during read query at consistency ONE (1 responses were required but only 0 replicas responded, 2 failed)

Неважно, по какому запросу чтения он не проходит, но он работает примерно 10 секунд, а затем умирает. Иногда он умирает от запросов, которые были успешными при предыдущем запуске. Кроме того, мне просто интересно, почему он говорит, что 2 не удалось, если есть 3 узла (один начальный узел)?

Я заметил, что Экспресс-Кассандра уведомила, что фактор репликации был изменен и для запуска восстановления nodetool, но там я продолжаю получать следующее сообщение об ошибке -

Validation failed in /xxx.xxx.xxx.xxx (progress: 0%) [2018-07-02 08:10:33,447] Some repair failed

Где xxx.xxx.xxx.xxx - один из трех IP-адресов узла. Я пытался запустить восстановление nodetool на каждом из узлов, но продолжаю получать одинаковые ошибки на каждом из серверов.

Это мои параметры настройки экспресс-кассандры (xxx.xxx.xxx.xxx - это мой начальный IP-адрес):

    clientOptions: {
      contactPoints: ['xxx.xxx.xxx.xxx'],
      protocolOptions: {
        port: 9042
      },
      keyspace: 'test_keyspace',
      queryOptions: {
        consistency: cassandra.consistencies.one
      },
      socketOptions: {
        readTimeout: 0
      }
    },
    ormOptions: {
      defaultReplicationStrategy: {
        class: 'NetworkTopologyStrategy',
        dc1: 3
      }
    }

Я не уверен, правильно ли настроена NetworkTOpologyStrategy, но после запуска express.js я выполнил запрос на запись в базу данных, и он заполнил данные на всех трех узлах.

Любая помощь в устранении этих двух ошибок была бы замечательной!

1 Ответ

0 голосов
/ 25 апреля 2019

Предоставление ответа здесь, на случай, если кто-то еще борется.

Проблема была связана с NetworkTopologyStrategy. Я переключился на SimpleStrategy, и он начал работать.

У меня был только один DC.

Не уверен, что именно вызвало проблему, но если кто-то знает, не стесняйтесь добавлять его в комментарии, и я обновлю ответ.

...