Допустим, у меня есть 2 IP-адреса для данного домена (круговой DNS).
Если один из IP-адресов перестает отвечать на запросы, будут ли клиенты пытаться подключиться к другому IP-адресу? или они просто не смогут установить связь с доменом?
Допустим, у меня есть 2 IP-адреса для данного домена (круговой DNS).
Если один из IP-адресов перестает отвечать на запросы, будут ли клиенты пытаться подключиться к другому IP-адресу? или они просто не смогут установить связь с доменом?
Ответы:
DNS round robin не является хорошей заменой балансировщику нагрузки. DNS-сервер будет продолжать раздавать IP-адрес отключенного узла, поэтому некоторые из ваших пользователей получат доступ к вашему сервису, а некоторые - нет.
Когда клиент делает запрос DNS, сервер DNS возвращает все IP-адреса, связанные с этим именем. Волшебство совершается DNS-сервером, вращающим порядок этого списка для каждого запроса. Тем не менее, приложение должно реализовать возможность "обхода" по списку, пока не найдет работающий IP-адрес. И большинство приложений этого не делают.
Как ни странно, Windows Telnet - это одно из таких приложений, которое достаточно умно для обхода связанного списка возвращаемых IP-адресов. Вы можете увидеть это поведение самостоятельно, например, если попытаетесь связаться по telnet с google.com. Вы заметите, что для того, чтобы наконец потерпеть неудачу, требуется много времени Это потому, что у google.com много IP-адресов, и клиент telnet пробовал каждый.
Использование балансировщика нагрузки все равно оставит единственную точку отказа. Если ваш балансировщик нагрузки отключается, ваш сайт отключается.
Conterary в ответ выше, большинство HTTP клиентов уже DO поддержка пытается каждым IP - адрес не вернулся из запроса DNS , пока один возвращается с действительным ответом. Пожалуйста, смотрите здесь:
http://blog.engelke.com/2011/06/07/web-resilience-with-round-robin-dns/
Похоже, что автор протестировал следующие браузеры и обнаружил, что они работают нормально.
Chrome 11 в Windows 7
Firefox 4.0 в Windows 7
Internet Explorer 8 в Windows 7
Opera 11 в Windows 7
Safari 5 в Windows 7
Internet Explorer 7 в Windows XP (после значительной задержки)
Firefox 4.0 в Windows XP (после значительной задержки)
Собственный браузер Android на Android 2.3.3
iPhone родной браузер на iOS 4.3.3
Использование циклического перебора не будет выполнять все функции сервера балансировки нагрузки, например, возможность отслеживать время отклика с обоих серверов и перенаправлять больше трафика на один, если другой не отвечает так быстро, как следовало бы). Для устойчивости я бы сказал, что Round Robin DNS, вероятно, является лучшим решением, так как больше нет единой точки отказа.
Несмотря на то, что циклический DNS обычно не имеет обратной связи о состоянии серверов, для которых он предоставляет адреса, может быть полезно, если у вас есть какой-то балансировщик нагрузки (включая приемы на основе маршрутизатора) для каждого из этих адресов.
Есть хитрости для обновления DNS, когда что-то не получается; если это произойдет, DNS циклического перебора с подходящим коротким TTL может быть балансировщиком псевдозагрузки.