0Pricing
Network+ Academy · Урок

Балансировка нагрузки между серверами

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

«Балансировка нагрузки между серверами» — бесплатный урок Network+ Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Network+ Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Network+ Academy содержит 4 уроков всего.

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

Балансировка нагрузки распределяет входящий трафик между несколькими серверами, чтобы ни один сервер не оказался перегружен. Вместо того чтобы один загруженный сервер замедлял работу, несколько серверов совместно выполняют задачи, повышая производительность и надёжность. Перед серверами размещается устройство или сервис, называемый балансировщиком нагрузки; он распределяет запросы между ними, представляя пул серверов как один быстрый сервис.

Зачем балансировать нагрузку

Балансировка нагрузки дает два главных преимущества: масштабируемость и доступность. Добавление серверов за балансировщиком увеличивает пропускную способность и позволяет справляться с ростом нагрузки, а если один сервер выйдет из строя, балансировщик просто перестанет направлять на него трафик, поэтому пользователи по-прежнему смогут пользоваться сервисом. Так один уязвимый сервер превращается в устойчивый и расширяемый пул.

Роль балансировщика нагрузки

Балансировщик нагрузки принимает запросы клиентов через единый внешний виртуальный IP-адрес (VIP) и перенаправляет каждый запрос на один из внутренних серверов. Клиенты всегда обращаются только к VIP и не знают, сколько серверов находится за ним. Балансировщик может быть специализированным аппаратным устройством или программным обеспечением; его самого часто дублируют, чтобы он не стал SPOF.

Алгоритмы распределения

Балансировщики используют алгоритмы для выбора сервера. Алгоритм циклического перебора по очереди обращается к серверам. Алгоритм наименьшего числа соединений выбирает сервер с наименьшим количеством активных сеансов. При использовании весов предпочтение отдается более мощным серверам. Правильный алгоритм соотносит трафик с пропускной способностью серверов и поддерживает равномерную и эффективную загрузку пула.

Проверка работоспособности

Балансировщик нагрузки постоянно выполняет проверки работоспособности, обращаясь к каждому серверу, чтобы убедиться, что он отвечает. Если сервер не проходит проверку, балансировщик перестает направлять ему запросы, пока он не восстановится. Благодаря этому балансировка нагрузки также обеспечивает высокую доступность: неисправные серверы автоматически исключаются из распределения, поэтому пользователи не обращаются к недоступному серверу.

Сохранение сеанса

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

Уровень 4 и уровень 7

Балансировщики работают на разных уровнях. Балансировщик уровня 4 распределяет трафик по IP-адресу и порту TCP/UDP. Он работает быстро, но не анализирует содержимое. Балансировщик уровня 7 читает данные приложения, например URL-адреса HTTP, что позволяет выполнять интеллектуальную маршрутизацию: например, направлять запросы к /images в один пул, а к /api — в другой. Уровень 7 предоставляет больше возможностей, но требует больше обработки для каждого запроса.

Разгрузка SSL/TLS

Балансировщики нагрузки часто выполняют разгрузку SSL/TLS (завершение соединения): они берут на себя шифрование для клиентов и расшифровывают трафик, чтобы внутренним серверам не приходилось это делать. Благодаря этому ресурсы CPU серверов освобождаются для приложения, а управление сертификатами централизуется на балансировщике. Это одна из распространенных причин размещать интеллектуальный балансировщик уровня 7 перед веб-серверами.

Отказоустойчивые балансировщики

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

Балансировка нагрузки в облаке

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

Балансировка и HA

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

Быстрая проверка

Проверьте свои знания о балансировке нагрузки.

Повторение

Вы изучили балансировку нагрузки. Главное:

  • Она распределяет трафик между серверами, обеспечивая масштабируемость и доступность.
  • Клиенты обращаются к виртуальному IP-адресу, а балансировщик выбирает внутренний сервер.
  • Алгоритмы включают циклический перебор, выбор наименьшего числа соединений и распределение по весам.
  • Проверки работоспособности исключают неисправные серверы, а сохранение сеанса закрепляет сеансы за серверами.
  • Балансировщики уровня 4 и уровня 7 различаются возможностями; сами балансировщики также резервируются.

Часто задаваемые вопросы

Урок «Балансировка нагрузки между серверами» бесплатный?

Да — полный текст урока «Балансировка нагрузки между серверами» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Network+ Academy, подпишись на CoddyKit PRO. Курс Network+ Academy содержит 4 уроков всего.

Чему я научусь в уроке «Балансировка нагрузки между серверами»?

Узнайте, как распределяется трафик, чтобы службы сохраняли отзывчивость. Ты практикуешь Network+ Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Network+ Academy?

Предыдущий опыт не требуется. Network+ Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Балансировка нагрузки между серверами»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Network+ Academy?

Да. Каждый урок Network+ Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Отказоустойчивость и резервирование
  2. Балансировка нагрузки между серверами
  3. Качество обслуживания для важного трафика
  4. Объединение знаний перед экзаменом
← Назад к Network+ Academy