[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-arkhitektura-prilozheniy-chto-takoe-balansirovka-nagruzki-load-balancing":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":18,"progress":19,"seo":20},133,"chto-takoe-balansirovka-nagruzki-load-balancing",3,"arkhitektura-prilozheniy","Архитектура приложений","🏗️","Что такое балансировка нагрузки (load balancing)?","Балансировка нагрузки (Load Balancing) -- это распределение входящих запросов между несколькими серверами для обеспечения высокой доступности, равномерного использования ресурсов и отказоустойчивости. Как администратор в поликлинике, который направляет пациентов к разным врачам, чтобы ни один не простаивал и ни один не был перегружен.\n\n\u003Cdetails>\u003Csummary>Пример кода\u003C\u002Fsummary>\n\n```\n         Клиенты\n      ┌────┬────┬────┐\n      │    │    │    │\n      ▼    ▼    ▼    ▼\n  ┌─────────────────────┐\n  │   Load Balancer     │\n  │   (Nginx \u002F HAProxy  │\n  │    \u002F AWS ALB)       │\n  └──┬──────┬──────┬────┘\n     │      │      │\n     ▼      ▼      ▼\n  ┌──────┐┌──────┐┌──────┐\n  │App 1 ││App 2 ││App 3 │\n  └──────┘└──────┘└──────┘\n```\n\n\u003C\u002Fdetails>\n\n### Алгоритмы балансировки\n\n- **Round Robin** -- запросы распределяются по очереди. Простой, но не учитывает текущую нагрузку серверов.\n- **Weighted Round Robin** -- учитывает веса (мощность) серверов. Более мощный сервер получает больше запросов.\n- **Least Connections** -- запрос направляется к серверу с наименьшим числом активных соединений. Хорош при неравномерных по длительности запросах.\n- **Least Response Time** -- к серверу с минимальным временем отклика.\n- **IP Hash** -- определение сервера по хешу IP-адреса клиента. Гарантирует, что один клиент всегда попадает на один сервер (sticky sessions).\n- **Random** -- случайный выбор сервера. Прост в реализации и при большом числе узлов статистически близок к Round Robin.\n\n### L4 vs L7 балансировка\n\n| Аспект | L4 (транспортный уровень) | L7 (уровень приложения) |\n|--------|--------------------------|------------------------|\n| Уровень OSI | 4 (TCP\u002FUDP) | 7 (HTTP\u002FHTTPS) |\n| Что видит | IP-адреса, порты | URL, заголовки, cookies, тело запроса |\n| Скорость | Быстрее (не разбирает содержимое) | Медленнее (анализирует HTTP) |\n| Возможности | Простая маршрутизация | Content-based routing, A\u002FB-тестирование, SSL termination |\n| Примеры | HAProxy (L4 mode), AWS NLB | Nginx, HAProxy (L7 mode), AWS ALB |\n| Применение | TCP-сервисы, БД, высокопроизводительная маршрутизация | Веб-приложения, REST API, микросервисы |\n\nL7 балансировка позволяет маршрутизировать по содержимому запроса:\n\n```\n\u002Fapi\u002Fpayments  →  Payment Service (3 инстанса)\n\u002Fapi\u002Fclients   →  Client Service (2 инстанса)\n\u002Fapi\u002Freports   →  Report Service (1 инстанс)\n```\n\n### Health Checks\n\nБалансировщик периодически проверяет доступность серверов. Неработающие серверы исключаются из пула до восстановления. В Spring Boot для этого используется Spring Actuator (эндпоинт `\u002Factuator\u002Fhealth`), который позволяет настроить проверки не только самого приложения, но и его зависимостей (БД, очереди, внешние сервисы).\n\n> **На собеседовании:** Интервьюер ожидает знание разницы между L4 и L7, а также понимание Health Checks. Частая ошибка -- не упоминать sticky sessions и связанные с ними проблемы при горизонтальном масштабировании.","","junior",[15,16,17],"load-balancing","infrastructure","architecture",[],null,{"title":21,"description":22,"ogTitle":21,"ogDescription":23,"keywords":24,"schemaAnswer":32,"featuredSnippetReady":33},"Балансировка нагрузки (Load Balancing): алгоритмы и уровни — Gymterview","Что такое балансировка нагрузки? Алгоритмы Round Robin, Least Connections, IP Hash. Разница между L4 и L7 балансировкой. Примеры Nginx, HAProxy, AWS ALB.","Разбор алгоритмов балансировки нагрузки, сравнение L4 и L7 балансировки с примерами на Nginx и HAProxy.",[25,26,27,28,29,30,31],"балансировка нагрузки","load balancing","round robin","least connections","L4 L7 балансировка","Nginx","HAProxy","Балансировка нагрузки — распределение входящих запросов между несколькими серверами для обеспечения высокой доступности и равномерного распределения ресурсов. Основные алгоритмы: Round Robin, Weighted Round Robin, Least Connections, Least Response Time, IP Hash и Random. Различают L4-балансировку (транспортный уровень, TCP\u002FUDP) и L7-балансировку (уровень приложения, HTTP), которая позволяет маршрутизировать по URL, заголовкам и cookies.",true]