1. Mikä on kuormantasapainotus Uuden verkkosivuston ei pitäisi olla kuormantasapainotettu, koska liikennemäärät eivät ole suuret, joten näihin asioihin ei ole tarvetta. Kuitenkin verkkosivuston liikenteen ja liikenteen nopean kasvun myötä yksi palvelin on rajoitettu omien laitteistoolosuhteidensa vuoksi, ja on vaikea kestää näin suurta käyntimäärää. Tässä tapauksessa valittavana on kaksi vaihtoehtoa: 1. Päivitä yhden palvelimen laitteisto kaksiytimisestä neliytimiseen, lisää muistia jne. 2. Lisää palvelimien määrää jakamaan palvelimien taakka. Tavoitteena on lisätä verkon kaistanleveyttä ja lisätä palvelimen laskentatehoa. Ensimmäistä menetelmää voidaan ymmärtää pystysuuntaisena kehityksenä, joka on aina rajallinen. Toinen tapa on oikea valinta ongelman ratkaisemiseksi Kuormantasausmenetelmät voidaan jakaa kahteen suuntaan: toinen on ohjelmiston käyttö kuormantasapainotuksen saavuttamiseksi ja toinen on laitteistopohjainen kuormantasapainotus (mukaan lukien laitteiston ja ohjelmiston yhdistäminen) Käytä ohjelmistoja kuormantasapainotuksen saavuttamiseksi, ja kuormantasausprosessi kuluttaa myös järjestelmän resursseja ja pidentää vasteaikaa. Esimerkiksi LVS, nginx, haproxy, apache jne., nämä sovelluspohjaiset kuormantasausohjelmistot sopivat verkkosivustoille, joilla ei ole erityisen paljon kävijöitä. Jos sinulla on verkkosivusto, jossa on paljon kävijöitä, kuten Sina ja 163, laitteiston käyttö kuormantasauksen toteuttamiseen on ilmeisin vaihtoehto. Kuormantasausalgoritmeja on monia, mukaan lukien kuormantasaus, joka perustuu pyyntöjen määrään, juuri-IP-osoitteisiin ja liikennepohjaisiin algoritmeihin. Käytän usein kahta algoritmia. Yksi perustuu pyyntöjen määrään V: Se voi ymmärtää, että jokainen palvelin voi jakaa asiakkaan pyynnön tasaisesti, ja jos toinen palvelimista menee alas, se ei aiheuta huonoa vaikutusta. b. Palvelimien välinen tila on synkronoitava, kuten istunto, ja näiden tilojen synkronointiin tarvitaan muita keinoja. Yksi on IP:n mukaan A, ip_hash algoritmi voi kartoittaa IP-osoitteen palvelimeen, mikä voi ratkaista istunnon synkronointiongelman b. Huono puoli ip_hash on se, että jos jokin palvelimista menee alas, tälle palvelimelle liitetyt käyttäjät ovat masentuneita. c, ip_hash voi helposti johtaa epätasapainoiseen kuormitukseen, nyt kun jokirapuhallinto suodattaa Googlen hakuavainsanoja, huomaat usein, ettei Google pysty avaamaan sitä, mutta se on kunnossa ajan myötä. Tämä masensi Google-harrastajia, ja monet käyttäjät lähtivät ulkomaille etsimään agentteja. Jos näin käy, nämä välityspalvelimet määrätään samalle palvelimelle, mikä aiheuttaa epätasapainoista kuormitusta ja jopa vikaantumista.
Toiseksi, mitä session pitäminen on ja mikä on sen tehtävä Session hold tarkoittaa mekanismia kuormantasapainottimessa, joka varmistaa, että saman käyttäjän pääsypyynnöt jaetaan samalle palvelimelle kuormantasauksen aikana. Mitä session hold tekee, anna esimerkki Jos käyttäjän käyttöoikeuspyyntö on osoitettu palvelimelle A ja kirjautuu palvelimelle A, ja lyhyen ajan kuluttua käyttäjä lähettää toisen pyynnön, jos istuntohoidon toimintoa ei ole, tämän käyttäjän pyyntö todennäköisesti osoitetaan palvelimelle B, tällä hetkellä palvelimella B ei ole kirjautumista, joten sinun täytyy kirjautua uudelleen, mutta käyttäjä ei tiedä, mihin pyyntö on määritetty, käyttäjän tunne on, että hän on kirjautunut sisään, miksi hänen pitäisi kirjautua uudelleen, käyttäjäkokemus on todella huono. Ja jos ostat jotain Taobaosta, login = "Shoot something=" add address = "to pay", tämä on sarja prosesseja, jotka voidaan myös ymmärtää operaatioprosessina, kaikki tämä prosessisarja pitäisi suorittaa yhdellä palvelimella, eikä kuormantasapainotin voi määrittää eri palvelimille. Session holdilla on aikaraja (paitsi palvelimilla, jotka on määritetty kiinteään, kuten ip_hash), ja erilaiset kuormantasaustyökalut tarjoavat tämän session pidätysajan asetuksen, LVS:n, apache jne. Jopa PHP-kieli tarjoaa session.gc_maxlifetime istunnon pidätysajan asettamiseen Istunnon odotusaika tulisi asettaa pidemmäksi kuin istunnon selviytymisaika, mikä voi vähentää tarvetta synkronoida istuntoja, mutta sitä ei voi poistaa. Joten sessioiden synkronointi täytyy vielä tehdä.
Kolmanneksi, istuntojen synkronointi Miksi istuntojen synkronointi, sitä on mainittu puhuttaessa sessioiden säilyttämisestä. Lisätietoja löytyy kohdasta Kolme menetelmää sessioiden synkronointiin verkkoklusterissa
Verkkoklustereissa on kolme tapaa istunnon synkronointiin
Web-klusterin tekemisen jälkeen harkitset ehdottomasti ensin istuntojen synkronointia, koska kuormituksen tasapainotuksen jälkeen sama IP-yhteys samalle sivulle annetaan eri palvelimille. Tässä artikkelissa annetaan kolme erilaista tapaa ratkaista tämä ongelma tämän tilanteen mukaan: Ensiksi käytä tietokantaa istunnon synkronointiin En käyttänyt tätä menetelmää monipalvelin-istuntojen synkronoinnissa, mutta jos minun täytyisi käyttää tätä menetelmää, keksin kaksi menetelmää: 1. Käytä edullista tietokonetta rakentaaksesi tietokannan, joka tallentaa web-palvelimen istunnon, tai rakennaa tämä erityinen tietokanta tiedostopalvelimelle; kun käyttäjä käyttää web-palvelinta, hän menee tähän erityiseen tietokantaan tarkistaakseen istunnon tilanteen ja saavuttaa istunnon synkronoinnin tarkoituksen. 2. Tämä menetelmä on asettaa taulukko, johon istunto on tallennettu, yhdessä muiden tietokantataulujen kanssa, ja jos mysql on myös klusteroitu, jokaisella mysql-solmulla täytyy olla tämä taulu, ja tämän istuntotaulukon datataulu on synkronoitava reaaliajassa. Selitys: Tietokannan käyttäminen istuntojen synkronointiin lisää tietokannan kuormitusta, joka on luonteeltaan altis pullonkauloille. Ensimmäinen kahdesta yllä olevasta menetelmästä on parempi, sillä se erottaa taulukon, jossa istunto sijoitetaan, itsenäisesti, vähentäen todellisen tietokannan kuormitusta 2. Käytä evästeitä istuntojen synkronointiin Session on tiedostotilanne, joka tallennetaan palvelinpuolelle, ja cookie on tiedostotilanne asiakkaalla, miten synkronointi saavutetaan? Menetelmä on hyvin yksinkertainen: käyttäjän vierailusivun luoma istunto laitetaan evästeeseen, eli käytetään evästettä välitysasemana. Käyt verkkopalvelimella A, luot istunnon ja laitat sen evästeeseen, pääsysi on osoitettu verkkopalvelimelle B, tällöin palvelin B arvioi ensin, onko palvelimella tämä istunto, jos ei, mene katsomaan, onko tämä istunto asiakkaan evästeessä. Jos ei, se tarkoittaa, että istuntoa ei oikeastaan tallenneta, jos sellainen on evästeessä, Synkronoi evästeen sessoin palvelimen B kanssa, jotta istunto voidaan synkronoida. Huomautus: Tämä menetelmä on yksinkertainen ja kätevä toteuttaa, eikä se lisää tietokannan kuormitusta, mutta jos asiakas poistaa evästeet käytöstä, istuntoa ei voi synkronoida, mikä aiheuttaa tappioita verkkosivustolle; Evästeet eivät ole kovin turvallisia, ja vaikka ne on salattu, ne voidaan silti väärentää.
3. Käytä memcachea istuntojen synkronointiin Memcache voidaan jakaa, ja ilman tätä toimintoa sitä ei voi käyttää istuntojen synkronointiin. Hän voi yhdistää web-palvelimen muistin muodostaakseen "muistipoolin", riippumatta siitä, mikä palvelin tuottaa sessoinin, se voidaan laittaa tähän "mempooliin" ja kaikki muu voidaan käyttää. Edut: istuntojen synkronointi tällä tavalla ei lisää tietokannan kuormitusta, ja turvallisuus on huomattavasti parempi verrattuna evästeiden käyttöön, ja istuntojen tallentaminen muistiin on paljon nopeampaa kuin tiedostojen lukeminen. Haittoja: memcache jakaa muistin moniin tallennuslohkojen määrittelyihin, lohkoja ja kokoja on, mikä myös määrittää, että memcache ei pysty täysin hyödyntämään muistia, mikä aiheuttaa muistin pirstoutumista, ja jos tallennuslohko ei riitä, se aiheuttaa myös muistin ylivuodon.
Neljäs, yhteenveto Kaikki yllä mainitut menetelmät ovat toteuttamiskelpoisia Ensimmäistä menetelmää, joka vaikuttaa järjestelmän nopeuteen eniten, ei ole suositeltava; Toinen menetelmä tuottaa hyviä tuloksia, mutta turvallisuusriskit ovat samat; Kolmas menetelmä, mielestäni kolmas on paras, suosittelen kaikkia käyttämään sitä;
|