Що таке балансування навантаження
Розміщення серверів в надійних дата-центрах Європи. Відкрийте хмарний VPS / VDS сервер на швидких SSD за 1 хвилину!
Кращий хостинг:
- захистить дані від несанкціонованого доступу в охоронюваному європейському ЦОДі
- прийме оплату хоч в bitcoin.
- дозволить поставити свій дистрибутив
- захист від DDos-атак
- безкоштовний backup
- Uptime 99,9999%
- ЦОД - TIER III
- провайдер - TIER I
Підтримаємо російською мовою 24/7/365 Працюємо з юрособами і фізособами. Вам прямо зараз потрібно 24 ядра і 72 Gb RAM. Будь ласка!
Наші вигідні тарифи доведуть, що дешевий хостинг ви ще не знали!
Хвилинна справа: виберіть конфігурацію, оплатіть і CMS на VPS готова.
Money Back - 30 днів!
Банківськими картами, електронною валютою, через термінали Qiwi, Webmoney, PayPal, Новоплат і ін.
Задайте питання в службу підтримки 24/7/365
Знайдіть відповіді в нашій базі і познайомтеся з рекомендаціями
Балансування навантаження - один з ключових компонентів високодоступних інфраструктури, який підвищує продуктивність і відмовостійкість веб-сайтів, додатків, баз даних та інших сервісів шляхом розподілу робочого навантаження між декількома серверами.
Інфраструктура без балансування навантаження виглядає так:
Користувач → Інтернет → Веб-сервер → Сервер баз даних
Тобто користувач підключається безпосередньо до веб-сервера (до вашого домену, yourdomain.com). І якщо цей єдиний веб-сервер припиняє роботу, користувач не зможе потрапити на сайт. Крім того, якщо безліч користувачів одночасно спробує відкрити сайт, сервер може просто не впоратися з навантаженням: сайт буде завантажуватися дуже повільно або ж користувач зовсім не зможе відкрити його.
Усунути єдину точку відмови можна за допомогою балансувальника навантаження і додаткового веб-сервера на бекенда.
Як правило, всі сервери бекенда обслуговують один і той же контент: таким чином, користувачі отримують доступ до одних і тих же даних незалежно від того, який сервер відповідає на запит.
Користувач
↓
Інтернет
↓
балансувальник навантаження
↓ ↓
Веб-сервер 1 Веб-сервер 2
(Реплицируемой сервери)
При балансуванні навантаження кожен запит спочатку потрапляє до балансувальник, який направляє його до одного з серверів бекенда; цей сервер, в свою чергу, відповідає на запит користувача і передає йому результат. У такій ситуації єдиною точкою збою стає балансувальник навантаження; її можна усунути шляхом додавання ще одного балансувальника.
Який трафік обробляє балансувальник навантаження?
Адміністратори балансувальник створюють правила для чотирьох основних типів трафіку:
- HTTP: стандартна балансування HTTP розподіляє запити згідно еханізмам HTTP. Балансувальник встановлює заголовки X-Forwarded-For, X-Forwarded-Proto і X-Forwarded-Port, щоб передати сервера бекенда інформацію вихідного запиту.
- HTTPS: балансування HTTPS працює майже так само, як HTTP, але з підтримкою шифрування. Шифрування даних обробляється одним з двох способів: за допомогою ретрансляції SSL (підтримує шифрування аж до бекенда) або SSL-термінації (дешифрування даних виконує балансувальник, після чого трафік відправляється на бекенда в незашифрованому вигляді).
- TCP: додатки, які не використовують HTTP або HTTPS, можуть розподіляти трафік TCP. Наприклад, можна розділити трафік кластера бази даних.
- UDP: зовсім недавно деякі балансувальник навантаження додали підтримку основних інтернет-протоколів, які використовують UDP (наприклад, DNS і syslogd).
Ці правила перенаправлення визначають протокол і порт балансувальника навантаження, а потім пов'язують їх з протоколом і портом, з допомогою яких балансувальник передасть трафік на бекенда.
Як балансувальник вибирає сервер на бекенда?
Балансувальник навантаження вирішує, на який сервер направити запит, за допомогою комбінації двох чинників. Спочатку балансувальник визначає сервери, які можуть швидко і адекватно зреагувати на запити, а потім він вибирає один з доступних серверів, керуючись попередньо сконфігурованими правилами.
Перевірка стану сервера
Балансувальник повинен відправляти трафік тільки на ті активні сервери, які в змозі його обслужити. Щоб зробити правильний вибір, він постійно відстежує стан серверів на бекенда за допомогою протоколу і порту, зазначених у правилі. Якщо сервер не проходить перевірку балансувальника, він автоматично видаляється з пулу серверів і не буде отримувати трафік, поки не пройде перевірку.
Алгоритми балансування навантаження
Далі балансувальник вибирає з пулу один з серверів відповідно до одного з алгоритмів. Найбільш поширеними є ці алгоритми:
Обробка стану
Резервні балансувальник навантаження
Щоб «знешкодити» балансувальник як єдину точку відмови, ви можете додати в інфраструктуру другий балансувальник і створити кластер, в якому вони будуть перевіряти стан один одного. Кожен з них в рівній мірі здатний виявляти і відновлювати збої.
Користувач
↓
Інтернет
↓ ↓
Балансувальник 1 балансувальник 2