Я прочитал здесь кучу ответов, и большинство из них имеют дело с циклическим DNS (RR DNS), но у меня есть другой вопрос. Если на уровне DNS я решаю назвать 3 IP-адреса в определенном порядке, .1 / .2 / .3 будет ли браузер использовать эти адреса по порядку?
Если есть ошибка на одном из IP-адресов, 404, 503, 403 или любом другом, будет ли браузер пробовать следующий IP-адрес по порядку, так что если сервер .1 выдает ошибку 503, будет ли браузер затем пытаться .2? и .3 и так далее, пока он не сможет достичь работающей системы или пройти через все адреса?
Целью здесь не является циклический перебор трафика или потенциально распределять нагрузку, я предполагаю, что если у меня приложение выйдет из строя, браузер автоматически восстановится. Кроме того, давайте предположим, что первые 2 записи являются локальным центром, а третья - менее желательным выбором, могу ли я считать в порядке, чтобы я не отправлял пользователя на ужасное решение по задержке, потому что я хотел, чтобы это разрешение было окончательным. прибегнуть к резервной копии.
Мысли?
Вы должны знать один принцип;
Если клиент получает ошибку 403, 404 или 503, это означает, что удаленный сервер отправил код ошибки обратно, клиент не будет пробовать второй IP-адрес, поскольку он фактически получает данные там. Эта ошибка означает ошибку веб-сервера, а не ошибку интернет-ссылки.
Клиент будет переключать IP-адрес только после TTL записи DNS или, если приложение запрашивает новый поиск DNS, для кэширования новой записи. (или если клиент перезапустит приложение, и, таким образом, может произойти новый поиск DNS)
Во-первых, записи DNS не вернулись в предсказуемом порядке. Тот, который использует клиент, если он есть, почти всегда только первый. Но поскольку порядок, в котором они возвращаются, по сути случайный, это может быть любой из них.
Браузеру все это наплевать. Он попытается один раз подключиться к одному из серверов и не будет пытаться подключиться к другому (за исключением Happy Eyeballs, который здесь в основном не актуален). Как только он получит ответ, любой ответ, тогда дело сделано. Он не пытается «повторить попытку» сам по себе.
Какое бы решение вы ни разработали, важно как можно скорее удалить неисправные серверные ВМ, чтобы трафик на них больше не шел. Это одна из целей балансировщика нагрузки.