1. Какие алгоритмы используются для балансировки нагрузки? 1. Алгоритм кругого обслуживания - это перебор по круговому циклу. Запросы поочередно передаются серверам, друг за другом и так до последнего сервера, а затем все начинается сначала. Плюс этого алгоритма заключается в том, что в нем используется любой протокол, в котором обращение к серверу идет по имени. Использование не требует связи между серверами, поэтому он очень хорош для балансировки. Однако, у него есть и недостатки: не учитывает загруженность сервера в кластере. Если один сервер будет загружен максимально, а другие минимально, к первому все равно будут приходить запросы. 2. Least connections - учитывает количество подключений, поддерживаемых серверами в текущий момент времени. Запросы передаются серверам с наименьшей загруженностью. 2. Какие открытые технологии существуют для балансировки нагрузки? 1. Apache HTTP Server Может использоваться с модулями для балансировки нагрузки, например, mod_proxy_balancer. Это позволяет распределять трафик между несколькими серверами, хотя и требует больше конфигурации по сравнению с другими решениями. 2. Kubernetes - В рамках контейнерной оркестрации предоставляет встроенные механизмы для балансировки нагрузки, такие как Services и Ingress. Эти ресурсы позволяют управлять сетевым доступом к контейнерам и распределять трафик. 3. Как осуществляется балансировка нагрузки на базах данных? Балансировка нагрузки заключается в распределении запросов от пользователей по разным копиям базы данных. Это позволяет выполнять большее количество запросов одновременно. Для обеспечения задачи репликации и балансировки нагрузки базы данных развернем кластер master-slave на СУБД PostgreSQL. 4. Реверс-прокси как один из элементов балансировки нагрузки. Устройство, которое разворачивают в пограничной сети и которое обрабатывает запросы из Интернета, перенаправляя их на компьютеры внутренней сети.