Συγκριτική αξιολόγηση απόδοσης νημάτων πλατφόρμας και εικονικών νημάτων της Java 21 σε αρχιτεκτονικές μικρουπηρεσιών
Comparative performance evaluation of platform threads and virtual threads of Java 21 in microservice architectures

Προβολή/ Άνοιγμα
Λέξεις κλειδιά
Java 21 ; Project Loom ; Virtual threads ; Spring Boot ; React ; JMH benchmarking ; Microservices ; Platform threadsΠερίληψη
Η παρούσα μεταπτυχιακή διατριβή παρουσιάζει τον σχεδιασμό και την υλοποίηση ενός συστήματος συγκέντρωσης μικροϋπηρεσιών (microservice aggregator), με βασικό στόχο την εμπειρική αξιολόγηση της αρχιτεκτονικής αλλαγής που εισήγαγε το Project Loom της Java 21. Συγκεκριμένα, η έρευνα επικεντρώνεται στη σύγκριση της απόδοσης μεταξύ της παλαιάς αρχιτεκτονικής των Νημάτων Πλατφόρμας (Platform Threads - Μοντέλο 1:1) και του σύγχρονου παραδείγματος της Δομημένης Ταυτόχρονης Εκτέλεσης μέσω Εικονικών Νημάτων (Virtual Threads - Μοντέλο M:N). Η αρχιτεκτονική του συστήματος βασίζεται σε ένα ασφαλές RESTful API που υλοποιήθηκε με Spring Boot 3, ενώ η παρατηρησιμότητα (observability) των δεδομένων τηλεμετρίας σε πραγματικό χρόνο επιτυγχάνεται μέσω ενός πίνακα ελέγχου (dashboard) ανεπτυγμένου με React. Ένα από τα βασικά τεχνικά χαρακτηριστικά της εργασίας είναι η χρήση του Java Microbenchmark Harness (JMH) για τη διεξαγωγή στατιστικά αυστηρών δοκιμών αντοχής (stress tests) στο επίπεδο της Εικονικής Μηχανής Java (JVM), απομονώνοντας τον θόρυβο του δικτύου και μετρώντας με ακρίβεια τη διακίνηση (throughput), την καθυστέρηση (latency) και την επιβάρυνση στη συλλογή απορριμμάτων (GC allocation rate). Τα εμπειρικά αποτελέσματα αποδεικνύουν ότι τα Εικονικά Νήματα εξαλείφουν πλήρως το σημείο συμφόρησης της έλλειψης νημάτων (thread starvation), προσφέροντας 16,8x μεγαλύτερη διακίνηση υπό συνθήκες μαζικού ταυτόχρονου φορτίου I/O, χωρίς καμία αναβάθμιση υλικού. Ωστόσο, η έρευνα αποκαλύπτει επίσης ότι η ακραία αποδοτικότητα της JVM μετατοπίζει αναπόφευκτα το σημείο συμφόρησης στο Επίπεδο Μεταφοράς (Transport Layer), οδηγώντας σε εξάντληση των εφήμερων θυρών TCP του λειτουργικού συστήματος, γεγονός που καθιστά αναγκαία τη χρήση δεξαμενών συνδέσεων (connection pooling) σε πραγματικά επιχειρησιακά περιβάλλοντα.


