Temat: najlepsza technologia dla ultra wydajnych serwisów www
Mirosław Ratman:
Wojciech Zieliński:
Zobacz COBAEX CMS - system działa na zasadzie serwera administracyjnego + serwera prezentacyjnego...
Dzięki za informacje ale to chyba nie bedzie działało przy ogromnym trafiku i częstych aktualizacjach (3-5 sek. interwał). PostgreQSL jest za wolny moim zdaniem do serwowania danych w tym przypadku. I jak juz wspomniano: jak z wymaganiami systemowymi, wytrzymałością na obciążenie przy duzym ruchu, itp?Mirosław Ratman edytował(a) ten post dnia 14.07.10 o godzinie 18:20
Właśnie przy takim rozwiązaniu architektura COBAEX CMS sprawdzi się bardzo dobrze. Dane bowiem jak napisałeś są pobierane "z zewnętrz" - nie uaktualniane bezpośrednio z portalu. Oznacza to, że działać to będzie następująco:
dane zewn. --> serwer administracyjny -kompilacja-> serwer prezentacyjny
Generalnie na serwerze prezentacyjnym masz bazę danych (niekoniecznie PostgreSQLa - może być np. MySQL szybszy dla dużych ilości danych i prostych zapytań, ewentualnie inne rowziązanie) wykorzystywaną tylko do przeszukiwania - praktycznie zero update'ów. Dane w niej są również "skompilowane" i ładowane na zasadzie "bulk-load" z serwera administracyjnego.
Założenie, że dane są uaktualniane co 4-5 sekundy oznacza, że na serwerze prezentacyjnym "pojawiają się" nowe dane lub modyfikują się dane co te 4-5 sekund. Natomiast odwiedziny tam są nieporównywalnie częstsze - ale przy odwiedzinach serwer prezentacyjny serwuje już gotowe (skompilowane) pliki lub pliki "składane" z przekompilowanych części. Kontakt z bazą danych w momencie prezentacji jest ograniczony praktycznie tylko np. do wyszukiwania danych (gdzie zresztą jest wykonywane banalnie proste i szybkie zapytanie - prosty SELECT, który zwróci nam nazwy plików, które musimy pokazać w ramach wyników wyszukiwania).
Cała idea to trochę rozwinięcie idei cache - tyle że mechanizm odnawiania cache jest bardziej "inteligentny" bo uzależniony de facto od logiki biznesowej portalu. Odświeżenie następuje bowiem nie w momencie, gdy coś się zmienia w portalu, ale w momencie kiedy logika biznesowa wie, że coś się zmienić powinno. Ponadto odświeżenie następuje w zakresie bardzo ograniczonym - tylko rzeczy które rzeczywiście się zmieniły, a nie w pełnym zakresie lub w zakresie rzeczy oglądanym aktualnie. Również odświeżanie cache nie jest zależne od odwiedzin, a od zmian danych - czyli nie uruchamia się przy odwiedzinach, a przy zmianach. A przecież w portalach chodzi właśnie o to, aby odwiedziny były jak najszybsze - jeśli serwer w momencie odwiedzin strony stwierdza, że trzeba przebudować cache, trwa to dłużej aniżeli normalne odświetlenie nawet budowanej z klocków strony.
Dodatkowo EX pozwala na publikację danych na więcej niż jeden serwer - czyli pozwala na realizację klastra funkcjonalnego - część danych przechowywana jest i serwowana z jednego serwera, część z drugiego, ewentualnie na obydwu mamy to samo, a dostęp jest na zasadzie klastra load-balancingu. Jednak w obydwu przypadkach "master data" mamy na jednym serwerze administracyjnym.
W zakresie statystyk wydajnościowych - nie mam takich danych, gdyż sama platforma pozwala na budowanie różnorodnych portali - a ich wydajność zależy również od budowy samego portalu (poziomu wykorzystania możliwości EXa).
Generalnie przewaga tego rozwiązania leży w architekturze - która jest bardziej efektywna od wielu mechanizmów stosowanych aktualnie w portalach.