1. Kaj je uravnoteženje obremenitve Nova spletna stran ne bi smela biti uravnotežena z obremenitvijo, ker promet ni velik, zato ni potrebe, da se ukvarjate s temi stvarmi. Vendar pa je zaradi hitre rasti spletnega prometa in prometa en sam strežnik omejen s svojimi strojnimi pogoji, zato je težko prenesti tako veliko število obiskov. V tem primeru sta na voljo dve možnosti: 1. Posodobiti strojno opremo enega strežnika, od dvojedrnega do štirijedrnega, povečati pomnilnik itd. 2. Povečati število strežnikov, ki bodo delili breme strežnikov. Doseči namen povečanja pasovne širine omrežja in povečanja procesorske moči strežnika. Prvo metodo lahko razumemo kot vertikalni razvoj, ki je vedno omejen. Druga metoda je prava izbira za rešitev problema Metode uravnoteženja obremenitve lahko razdelimo na dve smeri: ena je uporaba programske opreme za doseganje uravnoteženja obremenitve, druga pa izvajanje strojnega uravnoteženja obremenitve (vključno s kombiniranjem strojne in programske opreme) Uporabite programsko opremo za doseganje uravnoteženja obremenitve, proces uravnoteženja obremenitve pa porabi tudi nekaj sistemskih virov in poveča odzivni čas. Na primer, LVS, nginx, haproxy, apache itd., ti programi za uravnoteženje obremenitve, ki temeljijo na aplikacijah, so primerni za spletne strani, ki nimajo posebej velikega števila obiskov. Če imate spletno stran z velikim številom obiskov, kot sta sina in 163, je uporaba strojne opreme za implementacijo uravnoteženja obremenitve najbolj očitna izbira. Obstaja veliko algoritmov za uravnavanje obremenitve, vključno z uravnoteženjem obremenitve glede na število zahtev, korenskimi IP naslovi in algoritmi, ki temeljijo na prometu. Pogosto uporabljam dva algoritma. Ena je odvisna od števila zahtevkov A, lahko ugotovi, da lahko vsak strežnik enakomerno deli zahtevo stranke, in če eden od strežnikov odpove, to ne bo povzročilo slabega vpliva. b. Stanje med strežniki mora biti sinhronizirano, na primer seja, in za sinhronizacijo teh stanj so potrebni tudi drugi načini. Ena je po intelektualni lastnini A, ip_hash algoritem lahko preslika IP na strežnik, kar lahko reši problem sinhronizacije sej B. Slaba stran pri ip_hash je, da če eden od strežnikov pade, bodo uporabniki, dodeljeni temu strežniku, depresivni. c, ip_hash lahko zlahka vodi do neuravnotežene obremenitve, zdaj rečna rakova vlada filtrira Googlove ključne besede, pogosto boste ugotovili, da Google ne more odpreti, a bo po določenem času vse v redu. To je te Googlove navdušence spravilo v depresijo, mnogi uporabniki pa so odšli v tujino iskat agente. Če se to zgodi, bodo ti proxyji dodeljeni istemu strežniku, kar povzroči neuravnoteženo obremenitev in celo okvaro.
Drugič, kaj je zadrževanje seje in kakšna je njegova funkcija Zadrževanje seje se nanaša na mehanizem na uravnoteževalniku obremenitve, ki zagotavlja, da se zahteve za dostop, povezane z istim uporabnikom, razdelijo na isti strežnik med izvajanjem uravnoteženja obremenitve. Kaj počne session hold, daj primer Če je uporabniška zahteva za dostop dodeljena strežniku A in se prijavi na strežnik A, in v kratkem času ta uporabnik pošlje novo zahtevo; če ni funkcije zadrževanja seje, bo ta uporabnikova zahteva verjetno dodeljena strežniku B, v tem trenutku ni prijave na strežniku B, zato se morate ponovno prijaviti, vendar uporabnik ne ve, kam je njegova zahteva dodeljena, uporabnik ima občutek, da je prijavljen, zakaj se mora ponovno prijaviti, uporabniška izkušnja je zelo slaba. In če nekaj kupite na Taobao, iz login = "Shoot something=" add address = "to pay", gre za niz procesov, ki jih lahko razumemo tudi kot operativni proces; vse te operacije mora opraviti en strežnik in jih ne more dodeliti različnim strežnikom uravnoteževalnik obremenitve. Zadrževanje seje ima časovno omejitev (razen strežnikov, ki so preslikani na fiksno, kot je ip_hash), različna orodja za uravnoteženje obremenitve pa omogočajo nastavitev časa zadrževanja seje, LVS, Apache itd. Tudi jezik PHP ponuja session.gc_maxlifetime za nastavitev časa zadrževanja seje Čas zadrževanja seje naj bo nastavljen več kot čas preživetja seje, kar lahko zmanjša potrebo po sinhronizaciji sej, vendar tega ni mogoče odpraviti. Torej je še vedno treba sinhronizirati seje.
Tretjič, sinhronizacija seje Zakaj sinhronizacija seje, je bilo omenjeno, ko govorimo o ohranjanju seje. Za več informacij glejte Tri metode sinhronizacije sej v spletnem gruči
Obstajajo trije načini sinhronizacije sej v spletnem grozdu
Po spletni skupini boste zagotovo najprej razmislili o sinhronizaciji seje, saj bo po uravnoteženju obremenitve isti IP dostop do iste strani dodeljen različnim strežnikom. Ta članek ponuja tri različne načine reševanja tega problema glede na to situacijo: Najprej uporabite bazo podatkov za sinhronizacijo seje Te metode nisem uporabljal pri sinhronizaciji večstrežniške seje, a če bi moral uporabiti to metodo, sem pomislil na dve metodi: 1. Uporabite nizkocenovni računalnik za gradnjo baze podatkov za shranjevanje seje spletnega strežnika ali zgradite to posebno bazo podatkov na datotečnem strežniku; ko uporabnik dostopa do spletnega strežnika, gre v to posebno bazo podatkov, da preveri situacijo seje in doseže namen sinhronizacije seje. 2. Ta metoda je, da se tabela, kjer je seja shranjena, združi z drugimi tabelami baze podatkov; če je mysql prav tako gručen, mora imeti vsak mysql vozlišče to tabelo, podatkovna tabela te sejne tabele pa mora biti sinhronizirana v realnem času. Pojasnilo: Uporaba baze podatkov za sinhronizacijo sej bo povečala obremenitev baze, ki je po naravi nagnjena k ozkim grlom. Prva od zgornjih dveh metod je boljša, saj loči tabelo, kjer je seja postavljena neodvisno, s čimer zmanjša breme za dejansko bazo podatkov 2. Uporaba piškotkov za sinhronizacijo sej Session je datoteka, shranjena na strežniški strani, piškotek pa je datoteka na odjemalcu, kako doseči sinhronizacijo? Metoda je zelo preprosta, torej sejo, ki jo generira uporabniška obiskovalna stran, vstavite v piškotek, torej uporabite piškotek kot relejno postajo. Obiščete spletni strežnik A, ustvarite sejo in jo vnesete v piškotek, vaš dostop je dodeljen spletnemu strežniku B, v tem trenutku spletni strežnik B najprej presodi, ali strežnik ima to sejo, če ne, preverite, ali je ta seja v piškotku odjemalca, če ne, to pomeni, da seja v resnici ni shranjena, če je v piškotku, Sinhronizirajte sessoin v piškotku s spletnim strežnikom B, da se seja lahko sinhronizira. Opomba: Ta metoda je preprosta in priročna za izvedbo ter ne bo povečala bremena za bazo podatkov, vendar če odjemalec onemogoči piškotke, seje ni mogoče sinhronizirati, kar bo povzročilo izgube na spletni strani; Piškotki niso zelo varni, in čeprav so šifrirani, jih je še vedno mogoče ponarediti.
3. Uporaba memcache za sinhronizacijo sej Memcache je mogoče distribuirati, brez te funkcije pa ga ni mogoče uporabiti za sinhronizacijo sej. Pomnilnik na spletnem strežniku lahko združi v "mempool", ne glede na to, kateri strežnik generira sessoin, ga lahko vključi v ta "mempool", vse ostalo pa lahko uporabi. Prednosti: sinhronizacija sej na ta način ne poveča bremena za bazo podatkov, varnost je bistveno boljša v primerjavi z uporabo piškotkov, shranjevanje sej v pomnilniku pa je veliko hitrejše kot branje iz datotek. Slabosti: memcache razdeli pomnilnik na številne specifikacije shranjevalnih blokov, obstajajo bloki in velikosti, na ta način se določi, da memcache ne more v celoti izkoristiti pomnilnika, povzroči fragmentacijo pomnilnika, če je blok za shranjevanje nezadostn, povzroči tudi presežek pomnilnika.
Četrtič, povzetek Vse tri zgornje metode so izvedljive Prva metoda, tista, ki najbolj vpliva na hitrost sistema, ni priporočljiva; Druga metoda daje dobre rezultate, vendar so varnostne nevarnosti enake; Tretjo metodo, osebno menim, da je tretja metoda najboljša, priporočam vsem, da jo uporabljajo;
|