Как заставить StackExchange.Redis автоматически обнаруживать вновь добавленный подчиненный узел при использовании режима дозорного? - PullRequest
0 голосов
/ 06 августа 2020

Мы тестируем StackExchange.Redis v2.1.58, который поставляется с дозорным режимом функцией:

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

С настройкой Redis (v5.0.8) HA:

  • 172.17.6.45: главный, дозорный
  • 172.17.6.46: подчиненный, дозорный
  • 172.17.6.47: только дозорный

Мы протестировал следующий сценарий:

  1. Приложение подключается к Redis в дозорном режиме со строкой подключения как

    172.17.6.45:26379,serviceName=mymaster

  2. Start новый экземпляр Redis в качестве подчиненного в .47

  3. Запуск переключения на подчиненный сервер в .47

Когда произошел шаг # 2 SE.Redis не перезагружает информацию о конечной точке. Мы печатаем конечные точки в журнале, когда на шаге 3 произошел сбой соединения, и по-прежнему печатаются только .45 и .46. После шага № 3 SE.Redis не может переключить соединение с новым мастером в .47, потому что его нет в списке конечных точек.

Я хотел бы знать, как сделать так, чтобы SE.Redis знал о + ведомое событие на шаге № 2 и выполните перезагрузку конечной точки.

ОБНОВЛЕНИЕ:

После дальнейшего тестирования почему-то мы больше не можем создавать проблему. И после прохождения кода SE.Redis действительно происходит обработка перезагрузки конечной точки при переключении мастера. Мы рассмотрим этот сценарий позже, когда начнем использовать его для разработки продукта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...