Dekuji vsem na odpoved. Musim projit vsechny doporuceni co jste mi dali
a uvidim (dam vedet).
Uvazoval jsem i nad resenim, ze bych stavajici server psany v c++
premostil standardnim j2ee serverem, ke kteremu by se 'tlusti' klienti
pripojovali (proste bych mezi stavajici server a klienta strcil dalsi
server - ktery je ale prece jen standardizovanejsi. Predpokladam, ze
pro reseni j2ee server + tlusy klient nejaky hotovy framework existuje
(na tenkeho kliena jich je kazdopadne tuna).Tim bych presunul podivnou
komunikaci pres xml na server a klienti by se pres standardni session
beans komunikovali se javovym serverem. Pokud by tedy novy server umel
odpovidat a notifikovat rychle - na strane klienta bych ani nemusel
stavet cache.
Jak se divate na takove reseni?
Petr Charvat
Petr Ferschmann wrote:
Dobrý den,
také bych rád přispěl k diskusi.
Řešili jsme problém v clusteru s přetíženou databází (tj. snížení jejího
zatížení).
Používali jsme hibernate a OSCache běžící nad JGroups. Fungovalo to tak,
že se aplikace přímo připojovala přes Hibernate k databázi. Transakce
zde byly relativně krátké, takže nám stačilo obnovení vždy na okraji
transakce (tj. v hibernate jsme data z first level cache neobnovovali,
jen second level cache). Důležité bylo, toho co nejvíce v hibernate
cachovat - od entit, po relace. Výsledky query myslím, nešli
distribuovat.
Pokud byly provedeny nějaké změny, byly pomocí OSCache přes JGroups
distribuované ke všem klientům. Jednotlivý klienti se připojovali ke
GOSSIP serveru (součást JGroups) a přijímali aktualizace cache.
Protože jsme nepoužívali reliable messaging bylo v případě ztráty
spojení na gossip server nutné samozřejmě vše obnovit jinak (např.
restartem aplikace nebo zneplatněním celé cache), protože bylo možné, že
se některé zprávy nepřijaly.
Fungovalo to celkem spolehlivě, nicméně to nikdy nebylo nasazeno v
ostrém provozu (z netechnických důvodů). Mezi jednotlivými prvky byla
poměrně rychlá linka (100Mb/s), takže jsme ani neřešili náročnost
přenosu.
Myslím, že by toto mohla být cesta. Výhoda OSCache je, že se o vše pak
stará sama. Vy prostě jen umisťujete data do této cache. Když do ní něco
uložíte samo se to rozdistribuje. Pokud nějaká data v cache nejsou,
načtete je ze serveru (tj. požádáte si o ně).
Snad jsem Vám alespoň trošku pomohl.
Petr Ferschmann
Stavajici framework je velicie neprehledny (vznikal jako snehova
koule) a mam moznost jeho vnitnosti prepsat (vyextrahovat api a
reimplementovat streva). Jde mi o to, ze se mi nechce psat dalsi
framework, kterych uz je na svete tuna. Proto jsem se ptal na nejake
hotove reseni.
Petr Ferschmann
SoftEU s.r.o.
-----------------------------------
Sady Petatricatniku 31
301 00 Plzen
Czech Republic
-----------------------------------
Phone: +420 373 729 300
Fax: +420 373 729 301
Cell: +420 775 638 008
E-mail: [EMAIL PROTECTED]