2024-07-08
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Το ZooKeeper είναι μια εξαιρετικά διαθέσιμη υπηρεσία κατανεμημένου συντονισμού που χρησιμοποιείται ευρέως σε κατανεμημένα συστήματα για την επίλυση του προβλήματος συνέπειας των κατανεμημένων συστημάτων. Τα παρακάτω θα εισαγάγουν λεπτομερώς τις βασικές αρχές του ZooKeeper, συμπεριλαμβανομένης της αρχιτεκτονικής, του μοντέλου δεδομένων, του βασικού μηχανισμού και του πρωτοκόλλου συνοχής.
Το ZooKeeper υιοθετεί μια αρχιτεκτονική master-slave, η οποία συνήθως αποτελείται από έναν Leader και πολλούς ακόλουθους.
Το ZooKeeper αποθηκεύει δεδομένα σε μια δομή δέντρου παρόμοια με ένα σύστημα αρχείων και κάθε κόμβος ονομάζεται znode.
Δημιουργείται μια περίοδος λειτουργίας μεταξύ κάθε πελάτη και του συμπλέγματος ZooKeeper για τη διατήρηση της κατάστασης σύνδεσης και τη διαχείριση των προσωρινών κόμβων. Το ZooKeeper ανιχνεύει την κατάσταση σύνδεσης του πελάτη μέσω του μηχανισμού καρδιακού παλμού Εάν δεν ληφθεί καρδιακός παλμός μέσα σε ένα συγκεκριμένο χρονικό διάστημα, η περίοδος λειτουργίας θεωρείται αποσυνδεδεμένη.
Προκειμένου να διασφαλιστεί η συνέπεια των δεδομένων κάθε κόμβου, το ZooKeeper υιοθετεί έναν μηχανισμό συγχρονισμού δεδομένων. Όταν ο κόμβος Leader επεξεργάζεται ένα αίτημα εγγραφής, θα στείλει τη λειτουργία αλλαγής σε όλους τους κόμβους ακόλουθου θα επιβεβαιώσει μετά την αποδοχή της λειτουργίας αλλαγής και ο κόμβος Leader θα αποφασίσει τελικά εάν η λειτουργία αλλαγής είναι επιτυχής.
Το ZooKeeper υποστηρίζει τον μηχανισμό Watch Ο πελάτης μπορεί να καταχωρήσει το Watch στο καθορισμένο znode Όταν αλλάξουν τα δεδομένα ή οι θυγατρικοί κόμβοι του znode, το ZooKeeper θα ειδοποιήσει τον πελάτη.
Το ZooKeeper χρησιμοποιεί ένα πρωτόκολλο συνέπειας που ονομάζεται ZAB (Zookeeper Atomic Broadcast) για να διασφαλίσει τη συνέπεια των δεδομένων. Το ZAB αποτελείται από δύο φάσεις: την εκλογική φάση και τη φάση εκπομπής.
Όταν ξεκινά το σύμπλεγμα ZooKeeper ή ο κόμβος Leader αποτυγχάνει, απαιτείται εκλογή για τον προσδιορισμό ενός νέου Leader. Η εκλογική φάση χωρίζεται κυρίως στα ακόλουθα στάδια:
Αφού καθοριστεί το Leader, εισέρχεται στη φάση μετάδοσης Ο Leader είναι υπεύθυνος για την επεξεργασία του αιτήματος εγγραφής του πελάτη και τη μετάδοση της λειτουργίας αλλαγής σε όλους τους κόμβους Follower. Τα συγκεκριμένα βήματα είναι τα εξής:
Το παρακάτω είναι ένα απλό παράδειγμα χρησιμοποιώντας το ZooKeeper, που δείχνει πώς να δημιουργείτε κόμβους, να διαβάζετε δεδομένα κόμβων και να καταχωρείτε το Watch.
υπάρχει pom.xml
Εισαγάγετε την εξάρτηση πελάτη ZooKeeper.
xmlΑντιγραφή κώδικα