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