Алгоритм Azure Load Balancer

Azure Load Balancer — это самая высокопроизводительная подсистема балансировки нагрузки в Azure, поддерживающая задержку на очень низком уровне. Чтобы узнать больше о Azure Load Balancer, ознакомьтесь со статьей Общие сведения о Azure Load Balancer или изучите компоненты Azure Load Balancer.

Azure Load Balancer использует хэширование на основе кортежа в качестве алгоритма балансировки нагрузки.

Алгоритм балансировки нагрузки

Создав правило подсистемы балансировки нагрузки, вы можете распределять потоки входящего трафика из внешнего интерфейса этой подсистемы в ее серверные пулы. Azure Load Balancer использует алгоритм хэширования с пятью кортежами для распределения входящих потоков (не байтов). Подсистема балансировки нагрузки перезаписывает заголовки заголовков TCP/UDP при перенаправлении трафика в экземпляры внутреннего пула (подсистема балансировки нагрузки не переопределяет заголовки HTTP/HTTPS). Если проба работоспособности подсистемы балансировки нагрузки указывает на здоровую конечную точку серверной части, серверные экземпляры доступны для получения новых потоков трафика.

По умолчанию Azure Load Balancer использует хэш с пятью кортежами.

Пять кортежей включает:

  • Исходный IP-адрес
  • Исходный порт
  • Конечный IP-адрес
  • Порт назначения
  • Номер протокола IP для сопоставления потоков на доступные серверы

Кроме того, можно использовать режим распределения сходства сеансов, который использует балансировку нагрузки на основе двух кортежей или трех кортежей.

Azure Load Balancer поддерживает любой сценарий приложения TCP/UDP и не закрывает и не создает потоки. Она также не взаимодействует с полезными данными потоков. Полезные данные приложения прозрачны для Load Balancer. Поддерживается любое приложение UDP или TCP.

Подсистема балансировки нагрузки работает на уровне 4 и не обеспечивает функциональные возможности шлюза прикладного уровня. Подтверждение протокола всегда происходит непосредственно между клиентом и экземпляром внутреннего пула. Так как подсистема балансировки нагрузки не взаимодействует с полезными данными TCP и не обеспечивают разгрузку TLS, вы можете создавать сложные сценарии с шифрованием. Использование Load Balancer значительно повышает масштаб для приложений TLS, завершая подключение TLS на самой виртуальной машине. Например, емкости ключей в сеансах TLS ограничиваются только типом и числом виртуальных машин, добавленных в серверный пул.

Ответом на входящий поток всегда является ответ от виртуальной машины. Когда поток поступает в виртуальную машину, исходный IP-адрес источника также сохраняется. За каждую конечную точку отвечает определенная виртуальная машина. Например, подтверждение TCP происходит между клиентом и выбранной серверной виртуальной машиной. Ответ на запрос к интерфейсной части — это ответ, созданный серверной виртуальной машиной. При успешной проверке подключения к интерфейсному интерфейсу вы проверяете подключение по крайней мере к одной серверной виртуальной машине.

Следующие шаги