Подтвердить что ты не робот

Как Windows Azure выполняет балансировку нагрузки?

Я пытался прочитать балансировку нагрузки в Windows Azure, и вся информация об этом крайне неопределенная и неспецифическая. Все, что я действительно хочу, это простой ответ: как Azure выполняет балансировку нагрузки?

Многие приложения используют сеансы или данные в памяти для повышения производительности. С Azure я не уверен, что это возможно, потому что (из чего я могу сказать) у Azure нет никаких "липких" сеансов. Даже если это не было основано на сеансах, а просто балансировка на основе IP, этого было бы достаточно для многих приложений.

Итак, вопрос дня - как именно Azure выполняет балансировку нагрузки?

4b9b3361

Ответ 1

Хорошо дать правильный ответ здесь - Azure DOES поддерживает балансировку нагрузки перед ролями как в Интернете, так и в роли пользователя (так что ответ, помеченный как лучший в этом потоке, полностью неправильный), но он не поддерживайте балансировку нагрузки Affinity, которую, как я думаю, жаждал jvenema. Текущая реализация использует циклическое поведение.

Ответ 2

Azure обрабатывает балансировку нагрузки для хранения таблиц и SQL Azure, распределяя трафик по установленным вами экземплярам.

Для таких вещей, как состояние сеанса с традиционным приложением asp.net, данные сеанса будут храниться в хранилище таблиц, которые затем будут доступны для всех ваших экземпляров webrole. Это упоминается здесь.

Windows Azure обеспечивает балансировку нагрузки по каждой публичной конечной точке, что позволяет масштабировать ваше приложение на столько случаев, сколько захотите. Вам необходимо убедиться, что ваше приложение не имеет статуса (или хранит состояние в общей области между экземплярами, например, blobs или tables). Единственными конечными точками, не сбалансированными по нагрузке, являются внутренние конечные точки. Таким образом, если вы выполняете некоторую межпоточную связь, например, от веб-роли к одному из нескольких экземпляров рабочей роли, на которых размещена служба wcf во внутренней конечной точке, вам нужно будет обрабатывать балансировку нагрузки между этими экземплярами.

Ответ 3

В то время как балансировка нагрузки была цикличной, Microsoft с тех пор изменила способ балансировки нагрузки, как описано в этом блоге:

http://azure.microsoft.com/blog/2014/04/08/microsoft-azure-load-balancing-services/

Балансер нагрузки Microsoft Azure использует 5 кортежей (исходный IP-адрес, исходный порт, целевой IP-адрес, порт назначения, тип протокола) для вычисления хэша, который используется для сопоставления трафика с доступными серверами.

Ответ 4

Я понимаю, что это старый вопрос, но мы решили проблему Affinity с помощью Windows Web Farm Framework и создания слоя прокси-серверов, поддерживающих Affinity на наших веб-серверах.

http://technet.microsoft.com/en-us/library/jj129385.aspx

Это архитектура, рекомендованная для самостоятельного хостинга и, похоже, в равной степени применима к Azure. Слои выглядят примерно так:

Брандмауэр: балансировщик нагрузки Azure (от кругового к прокси-серверам)

Прокси: Маршрутизация запросов приложений (ARR) для выполнения балансировки нагрузки с привязкой к веб-серверам, статическим и динамическим сжатием и SSL. Разгрузка SSL на прокси-серверы дает веб-серверам дополнительное время процессора. Кроме того, Web Farm Framework отлично подходит для масштабирования, поскольку он управляет каждым дополнительным веб-сервером, копирует файлы приложений, контролирует работоспособность, переключается в режиме онлайн/в автономном режиме и т.д. У вас может быть более 10 000 веб-серверов.

Веб: обычные веб-серверы (не требуется SSL, сжатие и т.д.).

База данных: обычные серверы баз данных или Azure SQL.

Microsoft рекомендует, чтобы у вас было как минимум два сервера ARR (Proxy). Некоторые люди будут рыдать за дополнительную плату в Лазуре. Тем не менее, мы обнаружили, что Micro Instances ($ 15 pm) более чем подходят как прокси-серверы, если 5 Мбит - достаточная скорость.

Другой альтернативой является наличие двух серверов ARR, настроенных как Small Instances ($ 65pm @100 mbit), но один из которых отключен и только активирует его в пиковые периоды или когда первый сервер выходит из строя (например, может планировать запуск второго сервера ARR при первом запуске Windows Updates и остановке через час).

Это неприятность для настройки, но как только она работает, она очень гладкая!

ПРИМЕЧАНИЕ. В документации WFF есть некоторая путаница относительно терминов ARR, прокси и контроллера. Они, как правило, одно и то же. Помните об этом, если вы попытаетесь настроить его.

Ответ 5

Я думаю, вы можете искать Windows Azure AppFabric и Velocity, в частности. Взгляните на один из сеансов PDC для получения дополнительной информации.