Узнайте все о технологиях балансировки нагрузки

Автор Рави Дуддукуру

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

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

Эталонная модель Взаимодействие открытых систем (OSI) - это структура, которая разделяет передачу данных на семь уровней, где балансировка нагрузки может быть найдена на уровнях L4 - L7, поскольку она используется для обработки входящих сетевых нагрузок, что будет важно в дальнейшем. На данный момент важно знать, что такое уровни 4 и 7:

L4 - транспортный / сетевой уровень имеет дело с IP-адресом и портами TCP / UDP для направления трафика.

L7 - уровень приложения имеет дело с заголовком HTTP, унифицированным идентификатором ресурса, идентификатором сеанса SSL, системами доменных имен (DNS) и данными HTML-форм для направления трафика.

Преимущества балансировки нагрузки для приложений

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

  1. Масштабируемость. Поскольку балансировщик нагрузки равномерно распределяет работу по доступным серверам, это позволяет повысить масштабируемость.
  2. Избыточность. Когда трафик приложения отправляется на два или более веб-серверов и один из них выходит из строя, балансировщик нагрузки автоматически передает трафик на другие рабочие серверы, что идеально подходит для автоматизации.
  3. Гибкость. Благодаря балансировке нагрузки один сервер всегда будет доступен для приема различных нагрузок приложений, поэтому администраторы могут гибко обслуживать другие серверы. У вас есть гибкость системы поэтапного обслуживания, где по крайней мере один сервер всегда доступен для выполнения рабочей нагрузки, в то время как другие проходят техническое обслуживание, гарантируя, что пользователи сайта не будут испытывать сбоев в любое время.
  4. Безопасность. Балансировщики нагрузки также могут выступать в качестве дополнительной меры безопасности. Балансировщик нагрузки приложений может использоваться для предотвращения атак типа «отказ в обслуживании» (DDoS). С помощью балансировщика нагрузки приложений сетевой и прикладной трафик с корпоративного сервера «выгружается» на общедоступный облачный сервер или поставщика, таким образом защищая трафик от вмешательства со стороны опасных кибератак.
  5. Постоянство сеанса - это возможность гарантировать, что данные сеанса пользователя отправляются на один сервер на протяжении всего сеанса пользователя. Если сервер изменится на полпути, это вызовет проблемы с производительностью, и данные не будут сохранены. Возможность обрабатывать тонны сохраняемых данных - одно огромное преимущество, если вы знаете, как это сделать.
  6. Глобальная балансировка нагрузки на сервер. Глобальная балансировка нагрузки на сервер расширяет возможности уровней L4 и L7 на серверы в разных географических регионах. Все больше предприятий стремятся развернуть облачные приложения в центрах обработки данных и общедоступных облаках, чтобы справиться с облачной нагрузкой.

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

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

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

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

Программные балансировщики нагрузки и аппаратные балансировщики нагрузки

Балансировщики нагрузки работают как аппаратные устройства или определяются программно. Аппаратные устройства часто запускают проприетарное программное обеспечение, оптимизированное для работы на специализированных процессорах. По мере увеличения трафика поставщик просто добавляет дополнительные устройства балансировки нагрузки для обработки этого объема. Программно-определяемые балансировщики нагрузки обычно работают на менее дорогом стандартном оборудовании Intel x86. Установка программного обеспечения в облачных средах, таких как AWS EC2, устраняет необходимость в физическом устройстве.

Методы балансировки нагрузки и оптимизации

Алгоритмы балансировки нагрузки учитывают, маршрутизируется ли трафик в сети или на прикладном уровне, с использованием модели OSI, упомянутой ранее. Трафик, маршрутизируемый на сетевом уровне, находится на уровне 4, а прикладной уровень - на уровне 7. Это помогает балансировщику нагрузки принять решение о том, какой сервер получит входящий запрос.

Методы балансировки нагрузки

Каждый метод балансировки нагрузки основан на наборе критериев или алгоритмов, чтобы определить, какой из серверов в ферме серверов получит следующий запрос. Вот некоторые из наиболее распространенных методов балансировки нагрузки:

  1. Метод циклического перебора. Этот метод сортирует входящие запросы путем ротации первого сервера в пуле серверов в конец после подачи запроса. Затем он ждет своего следующего хода.
  2. Круговой взвешенный алгоритм. В этом методе вес каждого сервера обычно связан с количеством активных подключений, которые он содержит. Чем выше вес, тем больше запросов он получит.
  3. Наименьшее количество подключений. Этот метод направляет трафик на тот сервер, который имеет наименьшее количество активных подключений.
  4. Наименьшее взвешенное число подключений. Вес сервера добавляется в зависимости от его емкости. Вместе с методом наименьшего подключения они определяют нагрузку, распределяемую на каждый сервер.
  5. Хеш исходного IP-адреса. Хеш-код исходного IP-адреса использует исходный и целевой IP-адреса клиента и сервера для создания уникального хеш-ключа. Затем ключ используется для назначения клиента определенному серверу.
  6. Наименьшее время отклика - с помощью этого метода выбирается внутренний сервер с наименьшим количеством активных подключений и наименьшим средним временем отклика.
  7. Наименее ожидающий запрос. Ожидающие запросы отслеживаются и эффективно распределяются по наиболее доступным серверам.

Советы по оптимизации балансировки нагрузки

Если вы хотите убедиться, что ваше веб-приложение отлично работает с настройкой с балансировкой нагрузки, вы можете сделать некоторые оптимизации:

  1. Оптимизация сетевого и прикладного уровней. Как упоминалось ранее, методы балансировки нагрузки основывают свои решения на уровне, на который направляется трафик. Балансировка нагрузки L4 может быть маршрутизирована быстрее, чем уровень 7, потому что L7 должен проверять проходящие данные. Но балансировка нагрузки L7 разгружает медленные соединения, улучшая производительность.
  2. Сохранение сеанса. Наименьшее количество подключений хорошо работает с конфигурациями, которые полагаются на закрепление трафика и / или постоянство сеанса, поскольку вы можете продолжать кэшировать данные сеанса пользователя.
  3. Расшифровка SSL - это процесс масштабного дешифрования трафика и его маршрутизации к различным инструментам проверки, которые выявляют угрозы, как входящие в приложения, так и исходящие от пользователей в Интернет.
  4. Балансировка нагрузки DNS. Система DNS отправляет разные версии списка IP-адресов каждый раз, когда она отвечает на новый клиентский запрос с использованием метода циклического перебора, поэтому запросы DNS распределяются равномерно по разным серверам для справиться с общей нагрузкой.

ScaleArc

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

Программный комплекс ScaleArc - это балансировщик нагрузки на базу данных. Он позволяет администраторам баз данных создавать высокодоступные, масштабируемые и простые в управлении, обслуживании и миграции развертывания баз данных. ScaleArc работает с Microsoft SQL Server и MySQL в качестве локального решения и в облаке для соответствующих решений PaaS и DBaaS, включая Amazon RDS или AzureSQL.

  • Среды баз данных высокой доступности
  • Обеспечьте нулевое время простоя во время обслуживания базы данных и снизьте риск незапланированных отключений за счет автоматизации процессов аварийного переключения и интеллектуального перенаправления трафика на реплики базы данных.
  • Эффективно балансируйте трафик чтения и записи для значительного повышения общей пропускной способности базы данных
  • Консолидируйте аналитику базы данных в единой платформе, позволяя администраторам и производственной поддержке принимать более эффективные и разумные решения, тем самым экономя время и деньги.
  • Легко мигрируйте в облако и между платформами с нулевым временем простоя.

Попробуйте ScaleArc или прочтите наш технический документ, чтобы узнать, подходит ли ScaleArc для вас.

Первоначально опубликовано на https://www.devgraph.com.

Больше контента на plainenglish.io