Репликация главного и подчиненного хранилища данных, автоматический переход на другой ресурс и wackamole
У меня есть 2 выделенных сервера для хранилищ данных моего следующего проекта. Хранилища данных настроены для репликации ведущий-ведомый. Там нет присущего автоматического перехода на другой ресурс, но я, конечно, хочу этого. То есть, я бы хотел, чтобы доступ к главному хранилищу данных всегда работал без необходимости настраивать клиентскую библиотеку, чтобы определять, когда мастер не работает, и переключение на подчиненное устройство.
Я видел Wackamole, который основан на Spread Toolkit. Вы предоставляете Wackamole набор IP-адресов и набор узлов, и независимо от состояния "вверх / вниз" любого из узлов, эти IP-адреса будут оставаться доступными / вверх. Wackamole обнаруживает, когда узел выходит из строя, и ARP определяет IP-адреса, которые были на этом узле. Это довольно опрятно на самом деле.
Поэтому я подумал о том, чтобы использовать Wackamole, чтобы сохранить / активировать 2 виртуальных частных IP-адреса. Тогда клиенты всегда будут использовать один и тот же частный IP-адрес для доступа к главному хранилищу данных и один и тот же, но отдельный IP-адрес для ведомого хранилища данных, даже если эти IP-адреса размещены на одном и том же узле.
Мои серверы хранилищ данных доступны через частную сеть. Я не уверен, если это портит Wackamole все же.
Это безумие? Как вы обычно обрабатываете аварийное переключение частных сервисов, таких как хранилище данных.
FWIW, это не должно иметь значения, но хранилище данных Redis. Я не хочу слышать "использовать MySQL", пожалуйста:)
Благодарю.
2 ответа
Это кажется разумным для меня. Будет короткий период времени, когда ваш клиент может вообще не подключиться. Преимущество того, что клиент знает о различных серверах, заключается в том, что он может сразу попробовать ведомое устройство. Однако, если вы можете жить с небольшим количеством ошибок, это должно работать.
Используйте мастер-репликацию мастера, а не главного. пусть ваши клиенты пишут обоим мастерам. Читатели будут подключаться к любому доступному мастеру.