Как внедрить Redislabs Enterprise Cluster Высокая доступность?

Начал изучать RedisLabs Enterprise Cluster, но я не понял, как реализовать высокую доступность с использованием RLEC. Я понимаю, что RLEC использует проприетарную репликацию, которая отличается от Redis с открытым исходным кодом. Чего я хочу достичь, так это того, что если мой мастер-база данных выйдет из строя, мое приложение все равно сможет нормально функционировать, подключившись к реплике базы данных.

Мой вопрос:

  1. Я уже создал 2 узла. Если я создал новую БД Redis с именем "Тестирование с включенной репликацией", на каком узле находится основная БД (а какая является подчиненной)? Текущий мастер указан конечной точкой?

узлы

  1. Я подключился к localhost:19332 на каждом сервере (как показано в конечной точке). Почему я могу сделать набор с обоих серверов? (И это появляется на обоих серверах). Я думал, что обычно репликация должна быть один путь от главного к подчиненному?

2 ответа

Решение

Я дам вам несколько советов высокого уровня, если вы хотите получить больше информации, пожалуйста, свяжитесь с нами по адресу support@redislabs.com

Для истинного HA ваш кластер RLEC должен иметь как минимум 3 узла, поэтому вы должны добавить еще один узел в ваш кластер. Создав ресурс Redis, вы можете настроить его как HA, просто включив репликацию.

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

Обратите внимание, что вам нужно настроить DNS, а имя вашего кластера должно быть полным доменным именем.

Учитывая redis-cli -p 19332 это работает локально с обоих узлов, как отметил мой коллега @ItamarHaber, вы общаетесь с ресурсом Redis через прокси, все запросы обслуживаются вашим основным процессом Redis.

Я понимаю, что RLEC использует проприетарную репликацию, которая отличается от Redis с открытым исходным кодом.

Это неверно - репликация в RLEC идентична с открытым исходным кодом, это кластеризация, которая отличается и проприетарной.

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

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

  1. Эта информация доступна в представлении "Осколки" или в rladmin через status команда. Независимо от того, местоположение конечной точки не указывает на местоположение мастера - конечная точка является прокси, который соединяет ваш клиент с мастером.

  2. Так работает стандартная репликация Redis. В Redis репликация осуществляется одним способом: от ведущего к подчиненному. Тем не менее, в подчиненные могут быть записаны данные, но все, что написано для них, не сможет пройти вверх по течению и может быть перезаписано данными от мастера. В любом случае, всегда используйте конечную точку для подключения к вашей базе данных и никогда не подключайтесь локально к шардам - ​​это может привести к неожиданным результатам.

Другие вопросы по тегам