Какова лучшая стратегия для обработки сбоя кластера Redis с разбросанным набором docker узлов в среде, которая может по отдельности сбросить - PullRequest
0 голосов
/ 08 января 2020

Сценарий выглядит следующим образом:

6 Redis узлов в кластере на 6 узлов среды. Связь и создать кластер, как и ожидалось. Однако, если узел Redis дает сбой, протокол должен обеспечить отказоустойчивость не только узла кластера, но также и среды. Это эффективно стирает всю ассоциацию и идентификатор ha sh для узла кластера Redis после перезапуска этого узла docker.

В результате, когда узел возвращается в рабочее состояние, Redis запускает команду CLUSTER RESET HARD, и это создает кластер для этого самого узла, только отключая его от основных узлов кластера.

Подход, который я вижу, - это 2 метода, которые включают в себя одно и то же.

  1. Добавьте узел, который возвращается в онлайн с помощью add-node ИЛИ
  2. от самого узла с CLUSTER MEET, который возвращается онлайн, добавьте узел обратно в кластер для любого порта ip: это само по себе не эффективно возвращает его в кластер.

В принципе, я думаю, что вариант 2 имеет больше смысла, поскольку именно отказавший узел должен вернуться в кластер. Проблема заключается в следующем. Я хотел бы проверить, чтобы увидеть узел, с которым он CLUSTER MEET'ing - это узел, который на самом деле подключен к сети.

Если я смогу выполнить проверку, выдав параметр, который, как я знаю, мне не удался. Могу ли я запустить сценарий bash, чтобы затем проверить, подключен ли другой узел, а затем ВСТРЕЧИТЬСЯ с этим, или мне нужно сделать это в сценарии ruby .rb для функциональности типа cli?

...