недавно я узнал, как настроить балансировщик нагрузки с помощью aws и направить его в корневой / субдомен.
Но пока я играл с этим, я подумал, что есть некоторые задержки. Например, мои настройки
3 экземпляра, используя nginx
, node
, с участием pm2
Я изменил html
контент для каждого экземпляра, например <h1>load 1</h1>
<h1>load 2</h1>
<h1>load 3</h1>
затем, когда я продолжаю перезагружать DNS-балансировщик нагрузки, он показывает, что экземпляры переключаются случайным образом, поэтому я знаю, что он работает.
затем я вошел в один из экземпляров, остановил pm2
Я снова зашел, чтобы обновить страницу, иногда показывалось gateway error
который, я считаю, это потому, что он вошел в экземпляр, который я остановил, иногда он показывал страницу, НО с супер плохим css, что когда я открываю console.log, будут тонны ошибок, говорящих о невозможности найти файл.
Проходит 1-2 минуты, пока все не станет полностью нормально.
Мне интересно, нормально ли это и как это должно происходить? Или есть способ оптимизировать его, чтобы пользователю было удобнее?
Спасибо за любой совет.
Когда вы остановили свой экземпляр, возникли две проблемы:
Вот как работает ELB. ELB использует проверки работоспособности, чтобы узнать, плохи ли ваши экземпляры. Но на это нужно время. Вы наблюдаете 1-2 минуты - это время, когда ELB определяет, отказал экземпляр или нет.
Вы можете настроить частоту проверок работоспособности в конфигурации ELB.
Когда вы настраиваете балансировщик нагрузки, задействуются проверки работоспособности. Обнаружение отказавшего узла не происходит мгновенно, сначала должна завершиться ошибка проверки работоспособности, затем узел удаляется из балансировщика нагрузки.
Вы можете сделать проверки работоспособности очень короткими, но это может ухудшить ситуацию. Если ваш сайт очень загружен и один экземпляр не проходит проверку работоспособности, экземпляр удаляется, а затем другим экземплярам предстоит еще больше работы, они начинают отказываться от проверок работоспособности и, как домино, ваш сайт выходит из строя.