Εμφάνιση απλής εγγραφής

Συγκριτική αξιολόγηση απόδοσης νημάτων πλατφόρμας και εικονικών νημάτων της Java 21 σε αρχιτεκτονικές μικρουπηρεσιών

dc.contributor.advisorΑλέπης, Ευθύμιος
dc.contributor.authorΣαφελάς, Ανδρέας
dc.date.accessioned2026-07-06T05:57:32Z
dc.date.available2026-07-06T05:57:32Z
dc.date.issued2026-06
dc.identifier.urihttps://dione.lib.unipi.gr/xmlui/handle/unipi/19498
dc.description.abstractΗ παρούσα μεταπτυχιακή διατριβή παρουσιάζει τον σχεδιασμό και την υλοποίηση ενός συστήματος συγκέντρωσης μικροϋπηρεσιών (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) σε πραγματικά επιχειρησιακά περιβάλλοντα.el
dc.format.extent53el
dc.language.isoelel
dc.publisherΠανεπιστήμιο Πειραιώςel
dc.rightsΑναφορά Δημιουργού-Μη Εμπορική Χρήση-Όχι Παράγωγα Έργα 3.0 Ελλάδα*
dc.rights.urihttp://creativecommons.org/licenses/by-nc-nd/3.0/gr/*
dc.titleΣυγκριτική αξιολόγηση απόδοσης νημάτων πλατφόρμας και εικονικών νημάτων της Java 21 σε αρχιτεκτονικές μικρουπηρεσιώνel
dc.title.alternativeComparative performance evaluation of platform threads and virtual threads of Java 21 in microservice architecturesel
dc.typeMaster Thesisel
dc.contributor.departmentΣχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών. Τμήμα Πληροφορικήςel
dc.description.abstractENThis master’s thesis presents the design and implementation of a microservice aggregator, with the primary objective of empirically evaluating the architectural shift introduced by Java 21’s Project Loom. Specifically, the research focuses on comparing the performance of the legacy Platform Thread architecture (1:1 Model) against the modern paradigm of Structured Concurrency via Virtual Threads (M:N Model). The system's architecture is based on a secure RESTful API implemented with Spring Boot 3, while real-time observability of telemetry data is achieved through a dashboard developed with React. A key technical feature of this work is the utilization of the Java Microbenchmark Harness (JMH) to conduct statistically rigorous stress tests at the Java Virtual Machine (JVM) level, isolating network noise and accurately measuring throughput, latency, and Garbage Collection allocation rates. The empirical results demonstrate that Virtual Threads completely eliminate the JVM-level bottleneck of thread starvation, delivering a 15.8x increase in throughput under massive concurrent I/O load without requiring hardware upgrades. However, the research also reveals that the extreme efficiency of the JVM inevitably shifts the bottleneck to the Transport Layer, leading to the exhaustion of the operating system's ephemeral TCP ports. This finding highlights the absolute necessity of utilizing connection pooling in real-world enterprise environments.el
dc.contributor.masterΠροηγμένα Συστήματα Πληροφορικής - Ανάπτυξη Λογισμικού και Τεχνητής Νοημοσύνηςel
dc.subject.keywordJava 21el
dc.subject.keywordProject Loomel
dc.subject.keywordVirtual threadsel
dc.subject.keywordSpring Bootel
dc.subject.keywordReactel
dc.subject.keywordJMH benchmarkingel
dc.subject.keywordMicroservicesel
dc.subject.keywordPlatform threadsel
dc.date.defense2026-06


Αρχεία σε αυτό το τεκμήριο

Thumbnail

Αυτό το τεκμήριο εμφανίζεται στις ακόλουθες συλλογές

Εμφάνιση απλής εγγραφής

Αναφορά Δημιουργού-Μη Εμπορική Χρήση-Όχι Παράγωγα Έργα 3.0 Ελλάδα
Εκτός από όπου διευκρινίζεται διαφορετικά, το τεκμήριο διανέμεται με την ακόλουθη άδεια:
Αναφορά Δημιουργού-Μη Εμπορική Χρήση-Όχι Παράγωγα Έργα 3.0 Ελλάδα

Βιβλιοθήκη Πανεπιστημίου Πειραιώς
Επικοινωνήστε μαζί μας
Στείλτε μας τα σχόλιά σας
Created by ELiDOC
Η δημιουργία κι ο εμπλουτισμός του Ιδρυματικού Αποθετηρίου "Διώνη", έγιναν στο πλαίσιο του Έργου «Υπηρεσία Ιδρυματικού Αποθετηρίου και Ψηφιακής Βιβλιοθήκης» της πράξης «Ψηφιακές υπηρεσίες ανοιχτής πρόσβασης της βιβλιοθήκης του Πανεπιστημίου Πειραιώς»