# Отчет по лабораторной работе №7

Выполнила студентка гр. ИСЭбд-41 Плаксина А.В.

# Эссе на тему балансировки нагрузки

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

Существует несколько методой балансировки нагрузки, например, такие как :
 - раунд-робин, или по круговороту; запросы распределяются по серверам ко кругу
 - взвешенное распределение, то есть с помощью весовых коэффициентов 
 - на основе состояния, здесь учитывается загрузка сервера
 
 Также предусмотрены несколько открытых технологий для балансировки нагрузки, к примеру:
 - nginx, веб и прокси сервер, поддерживает многие методы балансировки
 - apache, имеет модуль mod_proxy_balancer, который позволяет распределить трафик между несколькими серверами.
 - а также happroxy, varnish cache и docker swarm

 Данные платформы включают в себя не только балансировку нагрузки, но и кэширование, оптимизацию и шифрование.

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

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