Я изучаю сценарий с живой панелью управления (веб-приложение Angular), которая обновляется каждые 5 секунд (опрос). API находится позади диспетчера трафика Azure, который переключается на второй регион в случае сбоя в основном регионе. Помните, что Azure Traffic Manager работает на уровне DNS.
Проблема, с которой я сталкиваюсь, заключается в том, что браузер поддерживает постоянное соединение с основным регионом даже после сбоя диспетчера трафика. Первоначально запросы не выполняются с 503 с, но затем продолжают с 502 с. Поиск DNS никогда не выполняется снова, так как запросы происходят чаще, чем время ожидания активности. Это приводит к тому, что браузер продолжает отправлять запросы в сбойный регион.
Есть ли способ явно прервать соединение, чтобы вызвать поиск DNS? Единственный способ, который я нашел до сих пор, - это перестать делать запросы на 2 минуты или закрыть и снова открыть браузер. Ни одно из них не является приемлемым решением для приборной панели, которая должна быть от руки и всегда свежей.
Интересно, что после переключения браузера на дополнительный регион, если я перезапущу основной регион, браузер автоматически переключится обратно на основной регион примерно через минуту. Это говорит мне о том, что соединение соблюдает TTL DNS, когда служба работает нормально, но не когда сервер недоступен. Это не имеет смысла для меня, почему браузер навсегда блокируется на один IP, когда он не найден.
Есть ли что-то, чего мне не хватает в реализации аварийного переключения с георежимом в Traffic Manager для веб-приложения? Мне кажется очень странным, что пользователю придется прекратить делать запросы на 2 минуты в любом сценарии, прежде чем браузер пересмотрит IP-адрес для отказавшего сервера. Ожидается ли переход поддержки активности для поддержки практически мгновенного переключения при сбое?
Вот схема, которая описывает этот сценарий:
Диаграмма