load_balancing
Obsah
Load balancing (Vyrovnávání zátěže)
Load balancer stojí jako „vstupní brána“ mezi klientem (uživatelem) a skupinou serverů (tzv. Server Farm nebo Backend Pool). Jakmile přijde požadavek, load balancer rozhodne, kterému serveru jej předá.
1. Hlavní přínosy
- Vysoká dostupnost (High Availability): Pokud jeden server selže, load balancer to pozná a okamžitě začne posílat provoz na ostatní funkční servery.
- Škálovatelnost: Umožňuje snadno přidávat nové servery do sítě podle toho, jak roste počet uživatelů.
- Plynulý upgrade: Umožňuje vypnout jeden server pro údržbu, zatímco ostatní dál obsluhují uživatele, aniž by si někdo všiml výpadku.
2. Algoritmy výběru serveru
Load balancer se rozhoduje podle nastaveného algoritmu:
| Algoritmus | Popis | Vhodné pro |
|---|---|---|
| Round Robin | Požadavky se posílají popořadě (1, 2, 3, 1…). | Servery se stejným výkonem. |
| Least Connections | Vybere server, který má aktuálně nejméně aktivních spojení. | Dlouhotrvající požadavky. |
| IP Hash | Na základě IP adresy klienta určí server. | Udržení relace uživatele na stejném serveru. |
| Weighted Round Robin | Silnější servery dostávají více požadavků než slabší. | Smíšený hardware. |
3. Typy Load balancerů
Podle toho, na které vrstvě OSI modelu pracují:
- L4 Load Balancer (Transportní vrstva): Rozhoduje se na základě IP adres a portů (TCP/UDP). Je velmi rychlý, ale „nevidí“ do obsahu dat.
- L7 Load Balancer (Aplikační vrstva): Rozhoduje se na základě obsahu požadavku (např. URL adresa, soubory cookie, hlavičky HTTP). To umožňuje např. posílat požadavky na obrázky na jiné servery než požadavky na platby.
4. Health Checks (Kontrola zdraví)
Load balancer neustále testuje („pingá“) servery v pozadí. Pokud server neodpoví nebo vrátí chybu, balancer ho označí za „nezdravý“ a přestane mu posílat provoz, dokud se neuzdraví. Tím se předchází situaci, kdy by uživatel dostal chybovou stránku.
5. Hardwarové vs. Softwarové řešení
- Hardwarové: Dedikovaná zařízení (např. F5, Citrix), extrémně výkonná, ale drahá.
- Softwarové: Programy běžící na běžných serverech.
- HAProxy: Standard pro vysoký výkon a spolehlivost.
- Nginx: Velmi populární webový server, který slouží i jako load balancer.
- Cloudové: Služby jako AWS ELB (Elastic Load Balancing) nebo Azure Load Balancer.
Zajímavost: Load balancery často řeší i tzv. SSL Termination. To znamená, že dešifrování HTTPS provozu proběhne na balanceru, čímž se ulehčí procesorům samotných aplikačních serverů v pozadí.
load_balancing.txt · Poslední úprava: autor: admin
