Как создать сервер приложений высокой доступности?
Я работаю с некоторыми аппаратными устройствами, которые используют мобильный Интернет для связи с моим сервером приложений.
Первоначально аппаратное обеспечение имело жестко заданный IP-адрес (балансировщик нагрузки) в аппаратном обеспечении для связи, которое использовалось для маршрутизации трафика на мой сервер приложений; теперь это создает единую точку отказа, если балансировщик нагрузки выходит из строя всей резервной инфраструктуры, которая за ним становится бесполезной, поскольку его целью является распределение нагрузки, а не поддержание доступности.
Теперь я попросил создателя оборудования переключить его на использование DNS, и, используя несколько записей A, я получил лучшие результаты. В этом случае у меня могут быть серверы приложений, напрямую работающие с оборудованием; но если один сервер выходит из строя, некоторые аппаратные устройства некоторое время не могут связаться, но он переходит на другой сервер через 20-30 минут; DNS отказоустойчивость не всегда работает
Итак, как я могу решить эту проблему и постоянно поддерживать работу своего сервера приложений?
2 ответа
Поскольку ваш вопрос довольно общий и не дает никаких подробностей об используемом программном обеспечении, мой ответ также короток: просто используйте набор из двух балансировщиков нагрузки, которые совместно используют "виртуальный IP-адрес" между ними, используя, например, vrrp ("Протокол резервирования виртуального маршрутизатора") или кардиостимулятор (также доступно больше опций). Для этого используйте две машины, которые либо голые, либо работают на двух разных хостах. Если один из компьютеров выйдет из строя, другой получит IP-адрес. Направьте свою запись на этот IP-адрес (и помните: DNS не предназначен для обеспечения высокой доступности.)
Изменить 1: как @Ondra Sniper Flidr упоминается в комментариях: еще одно решение остается в живых.
Изменить 2: Вы также можете взглянуть на CARP, "Протокол общего резервирования адресов". Например, программным решением, использующим этот протокол, будет UCARP.
Ваш балансировщик нагрузки должен быть высокодоступным благодаря простой совместимости двух устройств. В любой момент одно из двух устройств настроено на использование IP-адреса балансировщика нагрузки, и эти два устройства постоянно общаются друг с другом, поэтому резервное устройство знает, что активное устройство все еще работает.
Если по какой-либо причине активный балансировщик нагрузки выходит из строя, резервное устройство автоматически переконфигурируется на IP-адрес балансировщика нагрузки и продолжает балансировать трафик к внутреннему кластеру.