Αποδέσμευση του πλαισίου για τη δημιουργία εφαρμογών δικτύου ErgoFramework 2.2

Πραγματοποιήθηκε η επόμενη έκδοση του ErgoFramework 2.2, υλοποιώντας την πλήρη στοίβα δικτύου Erlang και τη βιβλιοθήκη OTP του στη γλώσσα Go. Το πλαίσιο παρέχει στον προγραμματιστή ευέλικτα εργαλεία από τον κόσμο του Erlang για τη δημιουργία κατανεμημένων λύσεων στη γλώσσα Go χρησιμοποιώντας έτοιμα μοτίβα σχεδιασμού γενικής χρήσης gen.Application, gen.Supervisor και gen.Server, καθώς και εξειδικευμένα - gen. Στάδιο (διανεμημένη παμπ/υπο), γεν. Saga (κατανεμημένες συναλλαγές, υλοποίηση του σχεδίου σχεδίου SAGA) και gen.Raft (εφαρμογή του πρωτοκόλλου Raft).

Επιπλέον, το πλαίσιο παρέχει λειτουργικότητα διακομιστή μεσολάβησης με κρυπτογράφηση από άκρο σε άκρο, η οποία δεν είναι διαθέσιμη στα Erlang/OTP και Elixir. Δεδομένου ότι η γλώσσα Go δεν έχει άμεσο ανάλογο της διαδικασίας Erlang, το πλαίσιο χρησιμοποιεί goroutines ως βάση για τον gen.Server με ένα περιτύλιγμα "ανάκτησης" για να χειρίζεται καταστάσεις εξαίρεσης. Ο κωδικός του έργου διανέμεται με την άδεια MIT.

Η στοίβα δικτύου στο ErgoFramework υλοποιεί πλήρως την προδιαγραφή DIST του πρωτοκόλλου Erlang. Αυτό σημαίνει ότι οι εφαρμογές που γράφτηκαν με βάση το ErgoFramework λειτουργούν εγγενώς με οποιεσδήποτε εφαρμογές γραμμένες στις γλώσσες προγραμματισμού Erlang ή Elixir (ένα παράδειγμα αλληλεπίδρασης με έναν κόμβο Erlang). Αξίζει επίσης να σημειωθεί ότι το μοτίβο σχεδίασης gen.Stage υλοποιείται σύμφωνα με την προδιαγραφή Elixir GenStage και είναι πλήρως συμβατό με αυτό (παράδειγμα υλοποίησης).

Στη νέα έκδοση:

  • Προστέθηκαν νέα πρότυπα
    • Το gen.Web είναι ένα μοτίβο σχεδίασης Web API Gateway (γνωστό και ως Backend For Frontend). Παράδειγμα.
    • Το gen.TCP είναι ένα πρότυπο που σας επιτρέπει να υλοποιήσετε μια ομάδα αποδεκτών σύνδεσης TCP με ελάχιστη προσπάθεια για τη σύνταξη κώδικα. Παράδειγμα.
    • gen.UDP - παρόμοιο με το πρότυπο gen.TCP, μόνο για το πρωτόκολλο UDP. Παράδειγμα.
  • Μια νέα λειτουργικότητα συμβάντων έχει προταθεί με την υλοποίηση ενός απλού διαύλου συμβάντων μέσα σε έναν κόμβο, ο οποίος σας επιτρέπει να δημιουργείτε μηχανισμούς για την ανταλλαγή γεγονότων (pub/sub) μεταξύ τοπικών διεργασιών. Παράδειγμα.
  • Προστέθηκε υποστήριξη για εγγραφή τύπου, η οποία επιτρέπει την αυτόματη σειριοποίηση/αποσειριοποίηση μηνυμάτων σε έναν εγγενή τύπο δεδομένων Golang. Αυτό σημαίνει ότι δεν χρειάζεται πλέον να χρησιμοποιείτε το etf.TermIntoStruct για κάθε μήνυμα που λαμβάνετε. Οι καταχωρημένοι τύποι θα μετατραπούν στον καθορισμένο τύπο αυτόματα, γεγονός που επιταχύνει σημαντικά την απόδοση της ανταλλαγής μηνυμάτων μεταξύ των κατανεμημένων κόμβων.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο