Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
1. Vyvažovač záťaže (často prvá zastávka):
* Mnoho systémov používa ako vstupný bod vyvažovača záťaže. Toto je špecializovaný server, ktorý distribuuje prichádzajúce požiadavky na viacerých backend serveroch (skutočné služby). Vyvažovač zaťaženia rozhodne, ktorý server postúpi žiadosť na základe faktorov, ako je zaťaženie servera, zdravotné kontroly a potenciálne dokonca požadované charakteristiky (napr. Použitie techniky nazývanej smerovanie s obsahom).
* Vyvažovač zaťaženia zvyčajne funguje v sieťovej vrstve (vrstva 4) alebo v aplikačnej vrstve (vrstva 7). Vyvažovatelia zaťaženia vrstvy 4 sa pozerajú na veci, ako sú adresy IP a porty, zatiaľ čo vyvažovatelia zaťaženia vrstvy 7 skontrolujú samotnú požiadavku HTTP (hlavičky, adresu URL atď.) Pred rozhodnutím o smerovaní.
2. Reverzný proxy (často po vyrovnávacej záťaži):
* Reverzný proxy sedí pred jedným alebo viacerými servermi backend. Prijíma žiadosti od vyrovnávača záťaže (alebo priamo od klientov, ak neexistuje vyvažovač záťaže) a postúpi ich do príslušnej služby.
* Reverzné proxy často spracúvajú úlohy, ako je ukladanie do vyrovnávacej pamäte, ukončenie SSL (dešifrovanie prenosu HTTPS) a pred odovzdaním žiadosti na zadný list požadujte úpravu.
* Nginx a Apache sú populárnymi príkladmi reverzných proxy.
3. Smerovanie na strane servera (v rámci aplikácie):
* Akonáhle sa požiadavka dostane na server (po potenciálnom prechode cez vyrovnávač záťaže a reverzný proxy), samotný server musí určiť, ktorá konkrétna služba alebo aplikácia by ju mala zvládnuť. Zvyčajne sa to robí pomocou jednej z nasledujúcich metód:
* URL Cesta: Najbežnejšia metóda. Server skúma komponent cesty URL (časť po názve domény). Napríklad, `/Používatelia/123` môžu byť smerovaní do služby používateľa, zatiaľ čo`/produkty/Search "môže prejsť na službu katalógu produktov. Frameworks ako Express.js (Node.js), Spring Boot (Java) a Django (Python) poskytujú mechanizmy na definovanie trás založených na cestách URL.
* hostiteľ/doména: Rôzne služby je možné nasadiť na rôznych subdoménoch alebo hostiteľoch (napr. Users.example.com` vs. `produkts.example.com`). Server môže použiť názov hostiteľa na určenie príslušnej služby.
* Riešenie založené na hlavičke: Žiadosť môže obsahovať hlavičky obsahujúce informácie o zamýšľanej službe. Server môže skontrolovať tieto hlavičky, aby zodpovedajúcim spôsobom smeroval žiadosť.
* Žiadať obsah: V niektorých prípadoch môže obsah samotného tela žiadosti určiť, ktorá služba by mala zvládnuť. Je to menej bežné, pretože vyžaduje viac spracovania a môže byť menej efektívne.
4. Objavovanie služieb (pre architektúry mikroprocesov):
* V mikroservisných architektúrach sú služby často dynamicky nasadené a škálované. Mechanizmy na objavovanie služieb, napríklad konzul, ETCD alebo Kubernetes, pomáhajú nájsť aktuálne inštancie každej služby. Keď príde žiadosť, mechanizmus smerovania (napr. Reverzný proxy alebo API Gateway) požiada systém Discovery Service Discovery, aby našla adresu príslušnej inštancie služieb a postúpila žiadosť.
v súhrne: Proces je reťaz potenciálne viacerých komponentov. Žiadosť zvyčajne takto tečie:
Klient -> (vyvažovač zaťaženia) -> (Reverzný proxy) -> Server -> (Objavovanie služieb, ak je to použiteľné) -> Špecifická služba
Presná implementácia do značnej miery závisí od zložitosti systému a od použitých špecifických technológií. Jednoduché aplikácie môžu zahŕňať iba smerovanie cesty URL na jednom serveri, zatiaľ čo rozsiahle systémy používajú kombináciu vyrovnávačov záťaže, reverzných proxov, objavovania služieb a sofistikovaných pravidiel smerovania.