Я не очень хорошо знаком с CARP, но могу попытаться помочь с оставшимися двумя вариантами:
Циклический DNS обеспечивает балансировку нагрузки, но в случае сбоя сервера он все равно будет получать запросы (которые также не будут выполняться)
т. е.: DNS www.example.com указывает как на x.x.x.1, так и на x.x.x. 2
если x.x.x.2 умирает, DNS по-прежнему будет разрешаться в x.x.x.2, и клиенты все равно будут пытаться запрашивать от него запросы, так что это увеличивает процент отказов до половины ваших запросов во время простоя (нехорошо)
Даже если вы изменить DNS, чтобы он указывал только на x.x.x.1 во время простоя; Распространение DNS займет много времени, и вы все равно будете терять запросы.
По моему честному мнению, размещение балансировщика нагрузки (прокси-сервера) перед вашим стеком — единственный выход
Мне очень нравится HAProxy, но это ни в коем случае не единственное решение (найдите то, что вам подходит)
Прокси-серверы дают вам гораздо больший контроль над вашим стеком приложений в форме высокой доступности (HA).
вы можете запланировать время простоя в любое время дня, чтобы выполнить техническое обслуживание или развертывание, не влияя на работу ваших клиентов.
Встроенные функции проверки работоспособности опрашивают внутренние серверы, разгружают их по мере необходимости и возвращают обратно, когда они выздоровели.
Недостатком балансировки нагрузки высокой доступности обычно является количество правил, которые необходимо настроить, чтобы поддерживать правильность сеансов или маршрутизацию в особых случаях. да, это может быть сложно, но есть МНОГО поддержки в сообществе, и этому легко научиться. Еще одним минусом HA Load Balancing является то, что сам прокси-сервер становится единственной точкой отказа, но это можно легко преодолеть с помощью heartbeatd и второго прокси-сервера.
Надеюсь, это ответит на некоторые ваши вопросы
person
Louis Kriek
schedule
05.01.2017