Я использую postgresql. Я много читал о настройке избыточного SQL, и большинство из них сводятся к простой настройке «главный-подчиненный», при которой подчиненное устройство может стать главным в любой момент.
Теперь у меня есть две серверные машины, и моя цель - настроить все службы на обеих машинах и иметь возможность перезагружать их через определенные промежутки времени для обслуживания, обновлений и т. Д. Настройка двойных экземпляров служб не проблема, моя проблема в том, как это сделать Я решаю проблемы с базой данных.
Я могу выполнить настройку Master-> Slave, и когда я хочу выключить машину, на которой работает мастер, я могу просто поднять подчиненное устройство, чтобы оно стало новым мастером, и выключило старый мастер.
Однако я нигде в Интернете не нашел, как вы управляете службами РАЗГОВОРЫ на подчиненный IP вместо главного IP. Каждая документация посвящена тому, как перейти от подчиненного устройства к главному и наоборот, и все такое, но ни один из них не занимается бесшовным обновлением клиентов для разговора с новым IP (даже все библиотеки, которые я обнаружил, похоже, поддерживают только одно соединение с мастером. ).
Итак, как вы это делаете? Как изменить IP-адрес всех многочисленных сервисов, веб-сайтов и прочего, чтобы заставить их разговаривать с новым IP-адресом (подчиненным, а не главным?), Не вызывая слишком больших перебоев в работе сервисов?
Ручное отключение каждой службы / узла / веб-сайта, обновление конфигурации и последующее возвращение службы мне кажется невероятно ненужной утомительной работой.
Я действительно озадачен этим, и я не нашел никакой помощи в Интернете.
В документации PostgreSQL упоминалось что-то о настройке прокси-сервера postgresql, который перенаправляет на правильный экземпляр, но это просто меняет проблему с подключения к IP-адресу главного / подчиненного устройства и к IP-адресам прокси.
Единственное «решение», которое я могу придумать, - это заставить все службы использовать DNS для разрешения имени хоста базы данных и изменения IP-адреса базы данных с IP-адреса главного устройства на IP-адрес подчиненного устройства, но это кажется мне ненадежным. У меня есть полный внутренний DNS, настроенный с локальными доменами, но я беспокоюсь, что службы / серверы / виртуальные машины кэшируют старый IP-адрес DNS, и если я перезапущу службу, они все равно будут подключаться к старому IP-адресу в DNS.
Если кто-то может указать мне правильное направление, я был бы очень признателен.