Kas veebirakendustes on koormuse tasakaalustamise ja sisu vahetamise kontseptsioonil erinevusi? Koormuse tasakaalustajad jaotavad päringuid mitme serveri vahel, et hallata rohkem liiklust, kui üks server ise suudaks.
See võimaldab teil oma veebirakendusi skaleerida ilma täiendavat riist- või tarkvara lisamata. Lisaks võimaldab koormuse tasakaalustamine kasutada vähem ressursse, kui muidu oleks vaja, kui kõiki sissetulevaid päringuid käsitleks ainult üks server.
Sisu vahetamine seevastu viitab kasutajate ümbersuunamisele ühelt lehelt teisele, kui praegune server ei saa nende taotlust täita. Selles artiklis käsitleme nende kahe mõiste erinevust.
Koormuse tasakaalustaja jaotab sissetulevad päringud mitme serveri vahel. See ei otsusta, milline server peaks konkreetsele päringule vastama. Selle asemel saadab see päringu lihtsalt saadaolevasse serverisse. Koormuse tasakaalustaja kasutab tavaliselt ringplaanistamist, kus iga kord, kui saabub uus päring, saadab see päringu järgmisele saadaolevale serverile.
Koormuse tasakaalustaja peab selle funktsiooni saavutamiseks teadma, millist IP-aadressi päring saata. Seetõttu peab koormuse tasakaalustajal olema juurdepääs konfiguratsiooniteabele.
Näiteks võib koormuse tasakaalustajal olla vaja teada veebirakendust hostiva masina nime, selle IP-aadressi, pordi numbrit jne.
Koormuse tasakaalustajad pakuvad ka muid funktsioone, nagu SSL-i lõpetamine, vahemällu salvestamine, jälgimine, tõrkesiirde jne. Neid funktsioone kirjeldatakse üksikasjalikult hiljem artiklis.
Tänapäeval kasutatakse kolme tüüpi koormuse tasakaalustamist: Round Robin (RR), Weighted Random (WR) ja Least Connections (LC). Round Robin (RR):
Seda tüüpi koormuse tasakaalustamine toimib nagu pöördvalimisega telefonisüsteem. Kui kõne saabub kommutaatorisse, läbib see ühendusi, kuni jõuab sihtkohta. Iga ühendusega on seotud teatud kaal.
Kui vabu ühendusi pole, siis kõne katkestatakse. RR-i puhul on erinevatele ühendustele määratud kaalud aja jooksul erinevad. Selle tulemusena jaotuvad kõned saadaolevate serverite vahel ühtlaselt.
Weighted Random (WR): määrab igale serverile kindla protsendi kogu ribalaiusest. Seega, kui serveriid on 10 ja eraldatud on 5% kogu ribalaiusest, saab iga server 5% koguvõimsusest. See tähendab, et esimene server saab 50% mahust, teine server 25% jne. Least Connections (LC):
LC-ga saadab koormuse tasakaalustaja päringuid ainult kõige vähem hõivatud serverile. Kui kõik serverid on võrdselt hõivatud, valib koormuse tasakaalustaja alati kõige vähem koormatud serveri.
WR-i peamine eelis on see, et see tagab parema jõudluse, kuna see ei nõua serverites mingeid erisätteid. Kuid see nõuab rohkem mälu ja protsessori tsükleid kui RR. WR-i peamiseks puuduseks on see, et see võib tekitada probleeme, kui serverite töökoormused oluliselt muutuvad.
Kui kasutaja taotleb konkreetset URL-i, eeldab ta, et näeb selles kohas sisu. Kuid mõnikord ei pruugi taotlus võrguprobleemide tõttu jõuda serverisse, mis majutab taotletud ressurssi.
Sellistel juhtudel saab kasutaja teate, et lehte ei leitud või server ei ole ajutiselt saadaval. Seda nimetatakse veaks "404 ei leitud". Selle probleemi vältimiseks võite kasutada tehnikat nimega "Sisu vahetamine". Sisu vahetamisel suunab koormuse tasakaalustaja kliendi päringu teise serverisse, mis majutab sama ressurssi, kui konkreetse ressursi päring ebaõnnestub. Nii ei näe kasutaja kunagi 404 vigu.
Teie koormuse tasakaalustaja peab mõistma, kuidas sisu vahetamiseks ümber suunata. Selleks kasutatakse HTTP-vastuskoodi nimega 302. 302-vastus käsib brauseril teha uus päring teise asukohta.
Lisaks peaks koormuse tasakaalustaja suutma määrata, milliseid ressursse millistes serverites majutatakse. Selleks kasutab see funktsiooni nimega DNS Name Server (DNS NS). DNS NS tõlgib hostinimed IP-aadressideks. Koormuse tasakaalustaja peab sisu vahetamiseks pääsema juurde veebisaidi DNS-i konfiguratsiooni teabele. Näiteks peab see teadma DNS-i nimeserveri asukohta ja selle IP-aadressi.
Seda tehakse, konfigureerides koormuse tasakaalustaja DNS-i edasisaatjaks. Konfigureerite DNS-i edasisaatja saatma päringuid vastavasse DNS-i nimeserverisse.
Kui DNS-i edasisaatja teab, kus DNS-i nimeserver asub, saadab ta päringu serverile. Pärast DNS-i nimeserverilt vastuse saamist tagastab koormuse tasakaalustaja soovitud ressurssi majutava serveri IP-aadressi.
Oluline on märkida, et virtuaalserverid ei toeta sisu vahetamist. Nad tagastavad olekukoodi 404.
Virtuaalserver on ühe füüsilise serveri loogiline esitus. Igal virtuaalserveril on oma IP-aadress ja pordi number. Tõrgete taluvuse tagamiseks kasutatakse virtuaalservereid. Kui virtuaalserver kaob, suunatakse sellele suunatud liiklus teise füüsilisse serverisse.
Koormuse tasakaalustamises läbivad kõik päringud sama teed. Seega on vahemälus alati ainult üks koopia andmetest. Kui esimene server on ülekoormatud, saavad teised serverid vähem tööd. Sisu vahetamisel läheb iga päring eraldi teele. Seega on vahemälus olevatest andmetest mitu koopiat. Ja kui esimene server on ülekoormatud, peavad teised serverid rohkem tööd tegema.
Koormuse tasakaalustamises jälgib koormuse tasakaalustaja iga serveri seisundit. Kui server lõpetab reageerimise, hoiatab see koormuse tasakaalustajat. Seejärel eemaldab koormuse tasakaalustaja selle serveri teenusest. Sisu vahetamisel jälgivad koormuse tasakaalustajad serverite seisundit. Kuid nad ei saada klientidele hoiatusi. Selle asemel suunavad nad päringud teistele serveritele.
Kui server jookseb kokku, saadab koormuse tasakaalustaja rakenduses Load Balancing kliendile teate, et nende taotlus ebaõnnestus. Sisu vahetamisel ei ütle koormuse tasakaalustaja kliendile midagi, kui server jookseb kokku.
Kui server taaskäivitub, proovib koormuse tasakaalustaja rakenduses Load Balancing välja selgitada, miks see kokku jooksis. Seejärel saab ta otsustada, kas panna see uuesti võrku või mitte. Sisu vahetamisel eeldavad koormuse tasakaalustajad, et serveri ilmumisel on kõik korras. Pole vaja kontrollida, miks see tagasi tuli. See lihtsalt hakkab talle uusi taotlusi saatma.
Koormuse tasakaalustamises saate määrata, mitu korda klient saab veateate, enne kui ta loobub teie veebisaidile jõudmisest. Sisu vahetamisel ei saa te kontrollida, kui kaua klient enne teie veebisaidile jõudmisest loobub.
Koormuse tasakaalustamises võib üksiku serveri rike mõne rakendusega probleeme tekitada. Hea näide oleks ostukorvirakendus. Kui kasutaja paneb kauba ostukorvi, kuid lahkub sealt välja registreerimata, siis tellimust ei vormistata.
Sisu vahetamisel ei mõjuta üks serveritõrge ühtegi rakendust.
Koormuse tasakaalustamine on parem kui sisu vahetamine, kuna sellel on vähem piiranguid ja see tagab parema jõudluse. Üldised programmid on väga sarnased, välja arvatud see, et koormuse tasakaalustaja käsitleb kõiki ühendusi, sisu vahetaja aga ainult samalt IP-aadressilt tulevaid ühendusi. Siiski on mõlemal eelised ja puudused. Enne kasutamist on oluline teada, mis need on.
Geri Mileva