PDA

Pogčedajte punu verziju : Klasterovanje Web aplikacija?


Dragan Varagić
20. 07. 2006., 10:05
Obzirom da nisam programer, ali me veoma zanima sa aspekta poslovnog projektovanja sistema kako se pravi aplikacija koja u startu podržava mogućnost njenog deljenja na veći broj servera (clustering, load balancing).

Ko bi mi objasnio jednostavnim rečima šta je to clustering sa aspekta postavljanja Web aplikacije na veći broj servera (to je izraz koji sam čuo da se za to koristi)?

Nešto što sam o tome našao je ovo:
http://en.wikipedia.org/wiki/Computer_cluster
http://www.google.com/search?q=define:clustering+technology

cvele
20. 07. 2006., 10:57
Web aplikaciju pises normalno kao sto bi to radio za neki drugi sajt.
Load Balancing se desava na nivou pre tvoje aplikacije, odnosno to ti obezbedjuje hosting partner najcesce.

Dosta dobar info na http://www.onjava.com/pub/a/onjava/2001/09/26/load.html?page=1

Na nivou aplikacije mozes raditi druge nacine optimizacije, npr kesiranje izvrsenih php/whatever skripti itd ako te vise zanima o tome mogu ti ispricati, ali me mrzi ukoliko te to nezanima.

robi-bobi
20. 07. 2006., 11:04
evo nabrzaka, pa kasnije cu malo detaljnije
jedna od stvari koju PHP autor istice kao prednost ovog jezika je upravo klasterabiliti :)

posto je PHP samo request-answer baziran i nista ne pamti, lako je uraditi tako da imash neki service koji raspredeljuje gde ce ici request (na koji server)

naravno pozeljno je imati poseban server (ukoliko su vise, oni trebaju biti sinhronizirani) za sql, i jos jedan koji ce drzati sesije

momenat samo da nadjem originalni tekst
...
evo ga: http://www.oracle.com/technology/pub/articles/php_experts/rasmus_php.html
pogledaj deo: Advice for Architects

jablan
20. 07. 2006., 11:48
Osnovni problem pri pravljenju multiserverskih veb aplikacija je čuvanje sesije. Podaci iz sesija se obično čuvaju u memoriji servera, tako da ako load balancer sledeći zahtev istog korisnika uputi na drugi server, on neće biti svestan postojanja sesije.

Ovo se može rešiti na nivou balancera (da zahteve od istog korisnika uvek prosleđuje na isti server) ili na nivou aplikacije (da svi serveri čuvaju session state na zajedničkom mestu - session state server, baza ili nešto treće).

Takođe, keš je nešto što se obično čuva na nivou jednog servera, dakle postoji problem invalidacije keša na ostalim serverima kad se nešto promeni na jednom od njih (npr. doda se nova vest).

cvele
20. 07. 2006., 12:18
Takođe, keš je nešto što se obično čuva na nivou jednog servera, dakle postoji problem invalidacije keša na ostalim serverima kad se nešto promeni na jednom od njih (npr. doda se nova vest).

To se takodje sredjuje na nivou balansera.

offtopic
setih se citata iz filma otpisani "A ti mu dodjes kao neki balansero":)

jablan
20. 07. 2006., 12:28
To se takodje sredjuje na nivou balansera.
Ne razumem baš, pojasni malo pliz.