Abstract:
i aplikacje internetowe. Istnieją dwa główne typy serwerów webowych: serwery synchroniczne, które
z góry alokują zasoby podczas rozpoczęcia przetwarzania, oraz serwery reaktywne, które są w stanie
robić to dynamicznie . W ostatnich latach wzrosło zainteresowanie serwerami reaktywnymi ze względu na
ich zdolność do obsługi dużych ilości danych i zmian w nich zachodzących, w sposób elastyczny
i skalowalny. W niniejszej pracy dyplomowej przeprowadzono analizę wydajności reaktywnych
i synchronicznych serwerów webowych z wykorzystaniem Kotlin Coroutines, Spring WebFlux oraz Spring
MVC. Zadaniem niniejszej pracy jest porównanie wydajności i skalowalności każdego typu serwera
w różnych warunkach obciążenia. Przeanalizowano również wady i zalety każdego typu serwera oraz
omówiono różne przypadki użycia, w których najlepiej się sprawdzają.
W celu przeprowadzenia analizy, opracowano zestaw testów do testowania wydajności serwerów w różnych
warunkach obciążenia. Dla celów testowych użyto Apachebench do wysyłania określonej liczby żądań do
serwerów i mierzenia czasu odpowiedzi. Wykorzystano również szereg innych narzędzi i technik do
pomiaru wydajności i skalowalności serwerów, w tym użycia pamięci, użycia procesora i czasu odpowiedzi
w różnych warunkach obciążenia.