You are on page 1of 2

ΗΥ342 - Παράλληλος Προγραμματισμός Άσκηση 5

Σε αυτη την άσκηση χρησιμοποιούμε έναν akka actor που λειτουργει ως ο server του
newshub, και προωθεί τα μηνύματα(post) των producers σε όσους consumer έχουν
κάνει subscribe στο topic του post.

Επίσης χρησιμοποιούμε έναν akka actor που λειτουργεί ως producer , κάνει subscribe
σε μια λίστα από topics και στη συνέχεια κάνει post σε αυτά.

Τελος έχουμε εναν akka actor που λειτουργει ως consumer, κάνει subscribe σε topics
και λαμβάνει ο,τι έχει γίνει post σε αυτα τα topics.

Η επικοινωνία μεταξύ τους γίνεται υπό την μορφή μηνυμάτων τυπου

Consumer ! Subscribe (“Sports”)

Producer ! Post (“Sports”, “Foo”)

Server ! Publish (“Sports”, Foo)

Για την ομαλή λειτουργία του hub χρησιμοποιούμε το akka.cluster.pubsub

Για να τρέξει το πρότζεκτ, παμε στον αρχικο φακελο


Πχ cd ~/askisi5...
Ξεκινάμε ./sbt και στην συνεχεια πληκτρολογούμε reStart

Scalability

Για να μετρήσουμε χρόνους έκτελεσης χρησιμοποιούμε start και stop με το


System.nanoTime().
Συγκεκριμένα, δοκιμάστηκε κάθε πιθανός συνδυασμός απο 1, 5 ή 10 producers και 1, 5,
10 consumers και για κάθε συνδυασμό έγιναν 5 run απο τα οποια μέτρησε ο μέσος
όρος των χρόνων εκτέλεσης
Αριθμός Producer Αριθμός Consumer Elapsed time in ms
1 1 2306ms

1 5 2673ms

5 1 2702ms

5 5 3001ms

1 10 2918ms

5 10 3039ms

10 5 3471ms

10 10 3511ms

Διαισθητικά προκύπτει πως ο αριθμός των Producer επηρεάζει περισσότερο τον χρόνο
εκτέλεσης απ’ οτι ο αριθμός των consumer καθώς για κάθε ποστ χρειάζεται ο server να
κάνει ορισμένους ελέγχους (αν ο producer έχει κάνει subscribe στο συγκεκριμένο topic).

You might also like