konto usunięte

Temat: Reverse AJAX na wielu węzłach

Witam,

mam prośbę o radę, sugestię, podpowiedź, nakierowania czego użyć, jak rozwiązać problem.

Jest klaster złożony z kilku serwerów na których uruchomione są Glassfishe.
Ruch na węzły rozprasza haproxy. Na każdym z serwerów działa aplikacja udostępniana po http. W klastrze działa też serwer bazy danych do którego wszystkie węzły mają dostęp.
Potrzebuję uruchomić na takim klastrze reverse ajax do obsługi powiadomień i chatu między użytkownikami aplikacji. Reverse Ajax działa poprzez odwoływanie się do sesji użytkowników.
Wszystko działa pięknie jak mamy tylko jeden węzeł, gdyż wszystkie sesje są na jednym serwerze.
Potrzebuje jednak uruchomić tę aplikację na wielu węzłach, a wówczas na różne serwery rozłożą się sesje użytkowników. W jaki sposób wtedy odwoływać się do sesji użytkowników? Jak je odszukiwać itp.?

Czy ktoś rozwiązywał podobny problem? Jakiego użyć oprogramowania? A może zastosować inną technologię niż Reverse Ajax?
Jacek R.

Jacek R. programista

Temat: Reverse AJAX na wielu węzłach

Nie za bardzo rozumiem te sesje użytkowników. One są obok i do tego są transparentne. Nie musisz ich odszukiwać, one nie muszą być w jednym miejscu, nie muszą "znać" innych sesji. Najważniejsze, by backend dla czatu/powiadomień był zcentralizowany. Ale jak zrozumiałem, masz centralną bazę danych, którą właśnie możesz użyć do tego celu (np do trzymania wpisów z czatu). Każdy klient będzie przez Cometa/Reverse Ajax utrzymywał połączenie z serwerem (na który wcześniej zostanie skierowany przez balancera), który niezależnie będzie łączył się z bazą i na podstawie nawiązanego wcześniej requestu HTTP wypychał dane do użytkownika, jeśli takowe się pojawią. Oczywiście, jeśli obciążenie będzie bardzo duże, architekturę trzeba zweryfikować, ale generalnie problemu nie widzę w tym co opisałeś.Jacek Romanowski edytował(a) ten post dnia 20.12.11 o godzinie 23:17

konto usunięte

Temat: Reverse AJAX na wielu węzłach

Zainteresuj się czymś takim:
http://www.ducea.com/2009/06/02/php-sessions-in-memcac...

Będziesz miał wtedy sesję w jedym miejscu bez względu na ilość węzłów.

konto usunięte

Temat: Reverse AJAX na wielu węzłach

Dzięki za odpowiedzi.

Na węzłach mam aplikację napisaną w javie. Tak więc musiałbym jakieś api do javy dla memcache mieć, no i zapisywać sesję użytkownika do bazy.

Architekturę projektuję właśnie na duży ruch/obciążenie, dlatego nie chcę robić centralnego backendu do chatu/powiadomień.

Ogólnie problem polega na tym że mamy np. Usera1 który skierowany został (prze balancer) na węzeł n1 (jego sesja więc jest na n1), Usera2, który skierowany został na węzeł n3 (jego sesja jest na n3). I teraz User1 pisze na chacie do User2. Jak ma "powiadomić" jego sesję, nie wiedząc na którym węźle jest?

Co do wykorzystania bazy do chatu, to czy to nie wygeneruje b. szybko ogromnego ruchu do/z bazy?

konto usunięte

Temat: Reverse AJAX na wielu węzłach

Z javy nie jestem mocny ale pierwszy link z googla wygląda sensownie:
http://sacharya.com/using-memcached-with-java/

Poza tym nie rozumiem dlaczego musisz przechowywać sesję w bazie? To po co wtedy memcached? Właśnie po to się to robi, żeby nie przechowywać tego w innych miejscach. Znający ID sesji użytkownika możesz ją spokojnie pobrać z memcached.

konto usunięte

Temat: Reverse AJAX na wielu węzłach

Marku użyj serwera memcached
Jeżeli chcesz porozmawiać bliżej zapraszam na priv

konto usunięte

Temat: Reverse AJAX na wielu węzłach

O dzięki Zbyszek.
Jak będę miał jakieś problemy z konfigurację to się odezwę.

konto usunięte

Temat: Reverse AJAX na wielu węzłach

Memcached jest fajny, ale nie zawsze potrzebny. Może wystarczy mechanizm sesji na bazie danych? Wtedy niezależnie, który węzeł będzie odpalony sesja będzie właściwa, bo pobrana z centralnej bazy danych. Nie wiem tylko, czy JAVA pozwala na takie zabawy.

Następna dyskusja:

Jakie Frameworki/biblioteki...




Wyślij zaproszenie do