DNS Round Robin очень медленные запросы в сценарии отработки отказа - PullRequest
3 голосов
/ 20 декабря 2010

В настоящее время я настраиваю пул серверов с AWS.Это простая установка с двумя серверами баз данных, масштабируемым массивом серверов и двумя балансировщиками нагрузки.У каждой машины есть резервное переключение при отказе, и все они должны быть достаточно надежными.

Балансировщики нагрузки должны иметь возможность аварийного переключения через DNS Round Robin.Таким образом, в счастливом сценарии обе машины получают удар и распределяют трафик по массиву.Когда один из этих компьютеров не работает, Round Robin DNS в сочетании с повторной попыткой браузера клиента должен сделать так, чтобы браузеры переключали свой целевой хост на компьютер, который все еще работает после истечения времени ожидания.Это не то, что я придумал, но кажется очень хорошим решением.

Проблема, с которой я сталкиваюсь, заключается в следующем.Сдвиг действительно происходит, но не один раз для неудавшегося запроса, а для каждого последующего запроса из того же браузера.Таким образом, простой запрос страницы занимает 21 секунду, после чего все изображения также загружаются за 21 секунду.Весь следующий запрос страницы также занимает много времени.Таким образом, отработка отказа работает, но в то же время совершенно бесполезна.

Вывод из раскопок:
;<< >> DiG 9.6.1-P2 << >> example.com
;;глобальные параметры: + cmd
;;Получил ответ:
;;- >> HEADER << - код операции: QUERY, статус: NOERROR, id: 45224 <br>;;флаги: qr rd ra;ЗАПРОС: 1, ОТВЕТ: 2, ПОЛНОМОЧИЯ: 0, ДОПОЛНИТЕЛЬНО: 0

;;РАЗДЕЛ ВОПРОСА:
; example.com.IN A

;;РАЗДЕЛ ОТВЕТА:
www.example.com.86400 В 1.2.3.4
www.example.com.86400 В 1.2.3.4

;;Время запроса: 31 мсек
;;SERVER: 172.16.0.23 # 53 (172.16.0.23)
;;КОГДА: Понедельник, 20 декабря 12:21:25 2010
;;MSG РАЗМЕР rcvd: 67

Заранее спасибо!

Maarten Hoekstra
Информационные службы Kingsquare

Ответы [ 2 ]

4 голосов
/ 20 декабря 2010

Когда DNS-сервер передает клиенту список IP-адресов, этот список будет упорядочен (возможно, поочередно, т. Е. Последующий DNS может вернуть их в другом порядке).Вероятно, что браузер кэширует ответ DNS, то есть список, который он первоначально получил.Затем не предполагает, что сбой соединения означает, что сервер не работает, но каждый раз будет повторять список в том же порядке.

Таким образом, циклический DNS для балансировки нагрузки в лучшем случае;он не очень хорошо подходит для обеспечения отказоустойчивости.

0 голосов
/ 20 декабря 2010

Есть причина, по которой мы называем это «балансировкой нагрузки бедняков». Это работает, но вы - милость решателя, и время ожидания зависит от того, какой IP возвращается первым с ваших DNS-серверов. Вы можете посмотреть на что-то вроде dnsmadeeasy.com и их восстановление после отказа DNS (есть другие, которые делают это, но я знаю dnsmadeeasy). В основном они контролируют доступность приложений и могут быстро изменять изменения DNS в зависимости от состояния приложения.

...