DAS_2023_1/basharin_sevastyan_lab_7/README.md

3.7 KiB
Raw Blame History

Лабораторная работа 6. Вариант 5.

Задание

Написать небольшое эссе (буквально несколько абзацев) своими словами. А помогут Вам в этом вопросы из списка:

  • Какие алгоритмы и методы используются для балансировки нагрузки?
  • Какие открытые технологии существуют для балансировки нагрузки?
  • Как осуществляется балансировка нагрузки на базах данных?
  • Реверс-прокси как один из элементов балансировки нагрузки.

Результат

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

Один из наиболее простых алгоритмов "Round Robin" предполагает равномерное распределение запросов между серверами. Это эффективное решение в случае, когда все серверы в сети имеют схожую производительность. В то время как алгоритм "Least Connections" предоставляет балансировку с учетом активных соединений, предпочитая сервер с наименьшим количеством активных запросов.

Открытые технологии, предназначенные для балансировки нагрузки, играют ключевую роль в обеспечении стабильности распределенных систем. HAProxy, Nginx и Apache HTTP Server с модулем mod_proxy_balancer предоставляют гибкие средства для распределения запросов. Эти инструменты способны учитывать различные параметры, такие как загрузка сервера и доступность, обеспечивая тем самым эффективную работу системы.

В контексте баз данных вопрос балансировки нагрузки становится не менее важным. Горизонтальное масштабирование, шардирование данных и репликация служат ключевыми методами. Технологии, такие как MySQL Cluster, MongoDB с шардингом и PostgreSQL с потоковой репликацией, обеспечивают эффективное распределение нагрузки и обеспечивают отказоустойчивость баз данных.

Реверс-прокси, например, в лице Nginx или Apache HTTP Server, выступает важным звеном в балансировке нагрузки. Эти инструменты предоставляют единый точку входа для клиентов, обеспечивают SSL терминацию, кэширование и управление сеансами, что делает их неотъемлемыми компонентами для обеспечения стабильной работы распределенных систем.