Назад | Перейти на главную страницу

Как работает балансировка нагрузки?

Я не могу понять, как работает балансировщик нагрузки. Скажем например на облачных серверах Rackspace.

  1. У вас есть один экземпляр со всеми вашими вещами
  2. Вы клонируете этот экземпляр, чтобы на самом деле было две его идентичные копии?
  3. Затем вы получаете статический IP-адрес от балансировщика нагрузки, и он переходит к одному из двух экземпляров (которые на самом деле одинаковы)

Это правильно? Где мне узнать об этом подробнее?

Это зависит от ваших настроек. Однако базовая настройка балансировки нагрузки включает один сервер базы данных. В книге Django, в главе о Развертывание Django, есть простая диаграмма, иллюстрирующая базовую конфигурацию балансировки нагрузки.

По сути, все компьютеры, создающие веб-страницы, используют одну и ту же базу данных, которая хранится на выделенном сервере. Медиа-файлы (например, CSS и изображения) могут храниться на одном сервере или на отдельном выделенном медиа-сервере, хотя эту роль может выполнять сам балансировщик нагрузки.

Однако в расширенных настройках, нацеленных на действительно высокий трафик или много статического контента, вы можете захотеть обслуживать статические файлы на нескольких разных медиа-серверах. Наконец, вы можете захотеть настроить распределенную базу данных, но это вводит совершенно новый класс проблем, и это действительно другая тема (например, у вас может быть распределенная база данных без использования балансировщика нагрузки).

Балансировка нагрузки распределяет нагрузку на два ваших экземпляра. Следовательно, один экземпляр не выполняет всю работу.

  1. Вы настраиваете балансировщик нагрузки с помощью Rackspace.
  2. Вы получаете статический IP-адрес от балансировщика нагрузки.
  3. Вы указываете DNS своего сайта на статический IP-адрес балансировщика нагрузки.
  4. Балансировщик нагрузки одинаково перенаправляет трафик на два экземпляра.

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

  1. Обычно между узлами связаны общие или общие данные (данные, информация о пользователе и т. Д.).
  2. Это зависит от архитектуры приложения, будь то с сохранением состояния (хранение данных) или без состояния (передача данных), обычно существует общий код на основе общего доступа для всех узлов (который в основном «клонируется» по узлам)
  3. Назначения IP-адресов обычно не управляются через балансировщик нагрузки, но конфигурации IP обычно являются неотъемлемой частью его конфигурации (поскольку для каждого сетевого компонента / устройства потребуется свой собственный IP-адрес)

Чтобы понять специфику реализации, необходимо определить саму реализацию.