Отключение веб-роли Azure (когда и как?)

Когда платформа Azure решает закрыть один из экземпляров моей веб-роли, как это делается?

Например, прекращает ли он отправлять новые запросы, но разрешает выполнение существующих запросов? Я не могу себе представить, что он просто прерывает активные соединения для планового обслуживания. Это было бы очень разрушительно и дорого.

Любое понимание этого маленького черного ящика было бы здорово, особенно если вы знаете ссылку MSDN или Azure CAT, которая ведет к этому.


person Pittsburgh DBA    schedule 22.09.2012    source источник


Ответы (1)


Fabric Controller удалит экземпляр из балансировщика нагрузки, чтобы он не получал новых запросов. Затем он перейдет к чистой последовательности завершения работы, сначала завершая работу ASP.NET в течение ее обычного жизненного цикла (может варьироваться в зависимости от того, работает ли ваше приложение в интегрированном или классическом режиме), ожидая завершения запросов (до продолжительность, указанная в свойстве shutdownTimeLimit), затем вызывается событие RoleEnvironment.Stopping и вызывается метод OnStop роли для очистки. Наконец, объект задания будет завершен.

Использованная литература:

person Fernando Correia    schedule 22.09.2012
comment
Спасибо! Это хорошая информация. Знаете ли вы, позволит ли он завершить мои активные подключения до того, как он начнет чистое завершение работы? - person Pittsburgh DBA; 23.09.2012
comment
Я не могу утверждать это авторитетно. Насколько я понимаю, так и будет, потому что он пройдет через обычный цикл завершения работы ASP.NET. Я попытаюсь узнать это из источника Microsoft. - person Fernando Correia; 23.09.2012
comment
Обновление: объяснено, как IIS будет ожидать завершения запросов до времени, указанного в свойстве shutdownTimeLimit (см. ссылки). - person Fernando Correia; 23.09.2012