Браузер не может пересмотреть DNS при постоянном соединении - PullRequest
4 голосов
/ 14 марта 2019

Я изучаю сценарий с живой панелью управления (веб-приложение Angular), которая обновляется каждые 5 секунд (опрос). API находится позади диспетчера трафика Azure, который переключается на второй регион в случае сбоя в основном регионе. Помните, что Azure Traffic Manager работает на уровне DNS.

Проблема, с которой я сталкиваюсь, заключается в том, что браузер поддерживает постоянное соединение с основным регионом даже после сбоя диспетчера трафика. Первоначально запросы не выполняются с 503 с, но затем продолжают с 502 с. Поиск DNS никогда не выполняется снова, так как запросы происходят чаще, чем время ожидания активности. Это приводит к тому, что браузер продолжает отправлять запросы в сбойный регион.

Есть ли способ явно прервать соединение, чтобы вызвать поиск DNS? Единственный способ, который я нашел до сих пор, - это перестать делать запросы на 2 минуты или закрыть и снова открыть браузер. Ни одно из них не является приемлемым решением для приборной панели, которая должна быть от руки и всегда свежей.

Интересно, что после переключения браузера на дополнительный регион, если я перезапущу основной регион, браузер автоматически переключится обратно на основной регион примерно через минуту. Это говорит мне о том, что соединение соблюдает TTL DNS, когда служба работает нормально, но не когда сервер недоступен. Это не имеет смысла для меня, почему браузер навсегда блокируется на один IP, когда он не найден.

Есть ли что-то, чего мне не хватает в реализации аварийного переключения с георежимом в Traffic Manager для веб-приложения? Мне кажется очень странным, что пользователю придется прекратить делать запросы на 2 минуты в любом сценарии, прежде чем браузер пересмотрит IP-адрес для отказавшего сервера. Ожидается ли переход поддержки активности для поддержки практически мгновенного переключения при сбое?

Вот схема, которая описывает этот сценарий: Диаграмма enter image description here

1 Ответ

0 голосов
/ 14 марта 2019

Обычно Azure Traffic Manager работает на уровне DNS. Клиенты подключаются к конечной точке сервиса напрямую, а не через Traffic Manager. Диспетчер трафика не может отследить отдельных клиентов и не может реализовать липкие сеансы .

  • Для первоначального влияния на производительность поиска DNS, вы можете найти детали объяснения здесь1 и здесь2

Разрешение DNS-имен быстрое и результаты кэшируются. Скорость начальный поиск DNS зависит от DNS-серверов, которые клиент использует для имени разрешающая способность. Как правило, клиент может выполнить поиск DNS в течение ~ 50 Миз. Результаты поиска кэшируются на время работы DNS Время жизни (TTL). TTL по умолчанию для диспетчера трафика - 300 секунд.

Значение TTL каждой записи DNS определяет продолжительность кеш. Более короткие значения приводят к более быстрому истечению срока действия кэша и увеличению Значения означают, что это может занять больше времени, чтобы направить трафик от неудачная конечная точка. Диспетчер трафика позволяет настроить TTL как 0 секунд и 2147483,647 секунд. Вы могли бы выберите значение, которое наилучшим образом соответствует потребностям вашего приложения.

  • Как и выше, если вы хотите, чтобы поиск DNS выполнялся быстрее, вы можете установить значение TTL как можно ниже. После установки подключения клиенты постоянно подключаются к выбранной конечной точке, пока конечная точка не будет повреждена с помощью проверки работоспособности.
  • Вы можете включать и отключать профили и конечные точки Traffic Manager. Однако изменение состояния конечной точки также может произойти в результате автоматических настроек и процессов Traffic Manager . . Получить более подробную информацию здесь .
  • Для географической метод маршрутизации ,

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...