Mateusz
Jakubowski
Student,
Politechnika
Radomska im.
Kazimierza
Pułaskiego
Temat: PHP wiele zapytań w krótkim okresie czasu
Witam,Jestem nowicjuszem w PHP więc proszę o wyrozumiałość. Nie chcę też aby ktoś pisał za mnie kod.
Chciałem poruszyć pewien problem oraz propozycję jak coś takiego najlepiej rozwiązać.
A wiec mam skrypt który zbiera dane ze strony www, przetwarza, wykorzystuje zgromadzone dane w czasie rzeczywistym i udostępnia je dalej w postaci czytelnej XML, JSON itp. Jak wiadomo czas to pieniądz - i w moim przypadku cenna jest każda sekunda. O ile nie śpieszno mi udostępniać dane dalej to o tyle bardzo szybko muszę reagować na otrzymane dane - tak że 4 sekundy to dla mnie dużo. Ktoś może pytać po co to na co to - no nie istotne tak bardzo. Ważne że coś takiego funkcjonuje - ale wolno. Pozyskanie informacji, przetwarzanie, wykorzystanie i udostępnienie dalej informacji.
Rozwiązanie:
OK jak wiadomo odpytywanie hosta co 20 sekund może nie być efektywnym rozwiązaniem i admin może to potraktować jako atak ddos i zbanować użytkownika. Wobec powyższego pomyślałem że może 10 użytkowników odpytywać host co 60 sekund, obrabiać dane i wysyłać je do głównego serwerka. Główny serwerek odbiera dane, zapisuje do bazy, duplikaty odrzuca, wykorzystuje dane na swój sposób i udostępnia je dalej. Taki jest plan.
Teraz pytanie - czy jeśli w jednym czasie zbiegnie się wielu użytkowników i zaczną aktualizować dane to serwer nie będzie miał zadyszki? Rozumiem żeby dane nie zostały zmodyfikowane przez klienta przed wysłaniem na serwer to trzeba zrobić może sha1 i szyfrowanie. Dekodowanie tego na serwerze i kolejkowanie np do pliku - czy to bardzo obciąża serwer? Czy ewentualnie jest jakiś inny sposób aby pozyskiwać dane z serwisów www w jak najkrótszym czasie po wprowadzeniu modyfikacji. Dodam że sprawdzanie nagłówków, ETAG nic nie daje bo dane w serwisie są ładowane z bazy. Trochę to taki akademicki projekt, trochę poznanie dodatkowych rozwiązań, opinii, oczywiście krytyka też mile widziana. Może tak się nie robi, może próbuję wynajdować koło na nowo a do tego typu rzeczy są całkiem inne rozwiązania. Tym bardziej jak by nie było mam do wykorzystania php, bazy, perl, python, c.
Pozdrawiam