Εκμάθηση ZooKeeper: Τι είναι, Architecture του Apache ZooKeeper

Τι είναι ένα κατανεμημένο σύστημα;

Μια κατανεμημένη εφαρμογή είναι μια εφαρμογή που μπορεί να εκτελεστεί σε πολλαπλά συστήματα σε ένα δίκτυο. Λειτουργεί ταυτόχρονα συντονίζοντας τους εαυτούς τους για να ολοκληρώσουν μια συγκεκριμένη εργασία. Αυτές οι εργασίες ενδέχεται να χρειαστούν πολλές ώρες για να ολοκληρωθούν από οποιαδήποτε μη διανεμημένη εφαρμογή.

Τι είναι το Zookeeper;

Apache Zookeeper είναι μια κατανεμημένη υπηρεσία συντονισμού ανοιχτού κώδικα που βοηθά στη διαχείριση ενός μεγάλου συνόλου κεντρικών υπολογιστών. Η διαχείριση και ο συντονισμός σε ένα κατανεμημένο περιβάλλον είναι δύσκολος. Το Zookeeper αυτοματοποιεί αυτή τη διαδικασία και επιτρέπει στους προγραμματιστές να επικεντρωθούν στη δημιουργία λειτουργιών λογισμικού αντί να ανησυχούν για την κατανεμημένη φύση του.

Το Zookeeper σάς βοηθά να διατηρείτε πληροφορίες διαμόρφωσης, ονομασία, ομαδικές υπηρεσίες για κατανεμημένες εφαρμογές. Εφαρμόζει διαφορετικά πρωτόκολλα στο σύμπλεγμα, έτσι ώστε η εφαρμογή να μην υλοποιείται από μόνη της. Παρέχει μια ενιαία συνεκτική άποψη πολλών μηχανών.

Γιατί το Apache Zookeeper;

Εδώ, είναι σημαντικοί λόγοι πίσω από τη δημοτικότητα του Zookeeper:

  • Επιτρέπει τον αμοιβαίο αποκλεισμό και τη συνεργασία μεταξύ των διαδικασιών διακομιστή
  • Διασφαλίζει ότι η εφαρμογή σας εκτελείται με συνέπεια.
  • Η διαδικασία συναλλαγής δεν ολοκληρώνεται ποτέ εν μέρει. Είτε του δίνεται το καθεστώς της Επιτυχίας ή της αποτυχίας. Η κατανεμημένη κατάσταση μπορεί να συγκρατηθεί, αλλά ποτέ δεν είναι λάθος
  • Ανεξάρτητα από τον διακομιστή στον οποίο συνδέεται, ένας πελάτης θα μπορεί να δει την ίδια προβολή της υπηρεσίας
  • Σας βοηθά να κωδικοποιήσετε τα δεδομένα σύμφωνα με το συγκεκριμένο σύνολο κανόνων
  • Βοηθά στη διατήρηση ενός τυπικού ιεραρχικού χώρου ονομάτων παρόμοιο με αρχεία και καταλόγους
  • Υπολογιστές, οι οποίοι λειτουργούν ως ένα ενιαίο σύστημα που μπορεί να συνδεθεί τοπικά ή γεωγραφικά
  • Επιτρέπει τη σύνδεση/αποχώρηση κόμβου σε ένα σύμπλεγμα και την κατάσταση κόμβου σε πραγματικό χρόνο
  • Μπορείτε να αυξήσετε την απόδοση αναπτύσσοντας περισσότερα μηχανήματα
  • Σας επιτρέπει να επιλέξετε έναν κόμβο ως ηγέτη για καλύτερο συντονισμό
  • Το ZooKeeper λειτουργεί γρήγορα με φόρτους εργασίας όπου η ανάγνωση των δεδομένων είναι πιο συχνή από την εγγραφή

ZooKeeper Architecture: Πώς λειτουργεί;

Εδώ είναι μια σύντομη εξήγηση για Apache Αρχιτεκτονική Zookeeper:

  • Ο Zookeeper ακολουθεί έναν πελάτη-διακομιστή Archiδομή
  • Όλα τα συστήματα αποθηκεύουν ένα αντίγραφο των δεδομένων
  • Οι ηγέτες εκλέγονται κατά την εκκίνηση
Archiδομή του ZooKeeper
Archiδομή του ZooKeeper

Server: Ο διακομιστής στέλνει μια επιβεβαίωση όταν συνδέεται οποιοσδήποτε πελάτης. Στην περίπτωση που δεν υπάρχει απάντηση από τον συνδεδεμένο διακομιστή, ο πελάτης ανακατευθύνει αυτόματα το μήνυμα σε άλλο διακομιστή.

Πελάτης: Ο πελάτης είναι ένας από τους κόμβους στο κατανεμημένο σύμπλεγμα εφαρμογών. Σας βοηθά να έχετε πρόσβαση σε πληροφορίες από τον διακομιστή. Κάθε πελάτης στέλνει ένα μήνυμα στον διακομιστή σε τακτά χρονικά διαστήματα που βοηθά τον διακομιστή να γνωρίζει ότι ο πελάτης είναι ζωντανός.

Ηγέτης: Ένας από τους διακομιστές ορίζεται ως Leader. Δίνει όλες τις πληροφορίες στους πελάτες καθώς και μια επιβεβαίωση ότι ο διακομιστής είναι ζωντανός. Θα εκτελούσε αυτόματη ανάκτηση εάν κάποιος από τους συνδεδεμένους κόμβους αποτύχει.

Οπαδός: Ο κόμβος διακομιστή που ακολουθεί τις οδηγίες του οδηγού ονομάζεται ακόλουθος.

  • Τα αιτήματα ανάγνωσης πελατών διεκπεραιώνονται από τον αντίστοιχα συνδεδεμένο διακομιστή Zookeeper
  • Τα αιτήματα γραφής του πελάτη διεκπεραιώνονται από τον αρχηγό του Zookeeper.

Σύνολο/Cluster: Ομάδα διακομιστών Zookeeper που ονομάζεται ensemble ή a Cluster. Μπορείτε να χρησιμοποιήσετε την υποδομή ZooKeeper στη λειτουργία συμπλέγματος για να έχετε το σύστημα στη βέλτιστη τιμή όταν εκτελείτε το Apache.

ZooKeeper WebUI: Εάν θέλετε να εργαστείτε με τη διαχείριση πόρων ZooKeeper, τότε πρέπει να χρησιμοποιήσετε WebUI. Επιτρέπει την εργασία με το ZooKeeper χρησιμοποιώντας τη διεπαφή χρήστη web, αντί για τη χρήση της γραμμής εντολών. Προσφέρει γρήγορη και αποτελεσματική επικοινωνία με την εφαρμογή ZooKeeper.

Το μοντέλο δεδομένων Zookeeper (ZDM)

Τώρα σε αυτό το σεμινάριο ZooKeeper, ας μάθουμε για το μοντέλο δεδομένων Zookeeper. Το παρακάτω σχήμα εξηγεί το μοντέλο δεδομένων Apache Zookeeper:

Το μοντέλο δεδομένων Zookeeper
Μοντέλο δεδομένων Zookeeper
  • Το μοντέλο δεδομένων zookeeper ακολουθεί έναν ιεραρχικό χώρο ονομάτων όπου κάθε κόμβος ονομάζεται ZNode. Ένας κόμβος είναι ένα σύστημα όπου εκτελείται το σύμπλεγμα.
  • Κάθε ZNode έχει δεδομένα. Μπορεί να έχει παιδιά ή να μην έχει
  • Διαδρομές ZNode:
    • Κανονικό, διαχωρισμένο με κάθετο και απόλυτο
    • Μην χρησιμοποιείτε σχετικές αναφορές
    • Τα ονόματα μπορεί να έχουν χαρακτήρες Unicode
  • Το ZNode διατηρεί τη δομή στατιστικών στοιχείων και τον αριθμό έκδοσης για αλλαγές δεδομένων.

Τύποι κόμβων Zookeeper

Υπάρχουν τρεις τύποι Znodes:

Επιμονή znode: Αυτός ο τύπος znode είναι ζωντανός ακόμα και μετά την αποσύνδεση του πελάτη που δημιούργησε το συγκεκριμένο znode. Από προεπιλογή, στο zookeeper, όλοι οι κόμβοι είναι επίμονοι εάν δεν έχει καθοριστεί.

Εφήμερος znode: Αυτός ο τύπος Zookeeper znode είναι ζωντανός μέχρι ο πελάτης να είναι ζωντανός. Επομένως, όταν ο πελάτης αποσυνδεθεί από το φύλακα του ζωολογικού κήπου, θα διαγραφεί επίσης. Επιπλέον, οι εφήμεροι κόμβοι δεν επιτρέπεται να τεκνοποιούν.

Διαδοχική znode: Οι διαδοχικοί znode μπορεί να είναι είτε εφήμεροι είτε επίμονοι. Έτσι, όταν δημιουργείται ένα νέο znode ως διαδοχικό znode. Μπορείτε να αντιστοιχίσετε τη διαδρομή του znode επισυνάπτοντας έναν 10ψήφιο αριθμό σειράς στο αρχικό όνομα.

ZDM- Ρολόγια

Zookeeper, ένα συμβάν παρακολούθησης είναι μια εφάπαξ ενεργοποίηση που αποστέλλεται στον πελάτη που ρύθμισε το ρολόι. Προέκυψε όταν αλλάζουν τα δεδομένα από αυτό το ρολόι. Το ρολόι ZDM επιτρέπει στους πελάτες να λαμβάνουν ειδοποιήσεις όταν αλλάζει το znode. Υπάρχουν λειτουργίες ανάγνωσης ZDM όπως getData(), getChidleren(), έχουν την επιλογή ρύθμισης ρολογιού.

Τα ρολόγια παραγγέλνονται, η σειρά των συμβάντων παρακολούθησης αντιστοιχεί στη σειρά των ενημερώσεων. Ένας πελάτης θα μπορεί να δει ένα συμβάν παρακολούθησης για το znode πριν δει τα νέα δεδομένα που αντιστοιχούν σε αυτό το znode.

ZDM- Λίστα ελέγχου πρόσβασης

Το Zookeeper χρησιμοποιεί ACL για να ελέγχει την πρόσβαση στα znodes του. Το ACL αποτελείται από ένα ζεύγος (Σχήμα: id, άδεια)

Ενσωμάτωση σε σχήματα ACL:

κόσμος: έχει ένα μόνο αναγνωριστικό, οποιοσδήποτε

auth: Δεν χρησιμοποιείται κανένα αναγνωριστικό, Αντιπροσωπεύει οποιονδήποτε πιστοποιημένο χρήστη

Digest: χρησιμοποιήστε ένα όνομα χρήστη: κωδικό πρόσβασης

host: Σας επιτρέπει να χρησιμοποιείτε το όνομα κεντρικού υπολογιστή του πελάτη ως ταυτότητα αναγνωριστικού ACL

IP: χρησιμοποιήστε τη διεύθυνση IP του κεντρικού υπολογιστή πελάτη ως ταυτότητα αναγνωριστικού ACL

Δικαιώματα ACL:

  • ΔΗΜΙΟΥΡΓΩ
  • ΑΝΑΓΝΩΣΗ
  • Γράψτε
  • ΔΙΑΓΡΑΦΗ
  • ΔΙΑΧΕΙΡΙΣΤΗΣ

Πχ (IP: 192.168.0.0/16, ΔΙΑΒΑΣΤΕ)

Το ZKS – Κατάσταση συνεδρίας και διάρκεια ζωής

ZKS – Κράτη συνόδου
ZKS – Κράτη συνόδου
  • Πριν από την εκτέλεση οποιουδήποτε αιτήματος, είναι σημαντικό ο πελάτης να δημιουργήσει μια συνεδρία με την υπηρεσία
  • Όλες οι λειτουργίες που αποστέλλονται οι πελάτες στην υπηρεσία συσχετίζονται αυτόματα με μια περίοδο λειτουργίας
  • Ο πελάτης μπορεί να συνδεθεί σε οποιονδήποτε διακομιστή του συμπλέγματος. Αλλά θα συνδεθεί μόνο σε έναν μόνο διακομιστή
  • Η συνεδρία παρέχει «εγγυήσεις παραγγελιών». Τα αιτήματα στη συνεδρία εκτελούνται με τη σειρά FIFO
  • Οι κύριες καταστάσεις για μια περίοδο λειτουργίας είναι 1) Σύνδεση, 2) Συνδεδεμένη 3) Κλειστή 4) Μη συνδεδεμένη.

Πώς να εγκαταστήσετε το ZooKeeper

Βήμα 1) Κάντε κλικ στο Συνέχεια για εγγραφή
Πηγαίνετε σε αυτό σύνδεσμος και κάντε κλικ στο «Συνέχεια εγγραφής»

Εγκαταστήστε το ZooKeeper

Βήμα 2) Αποδοχή Όρων & Προϋποθέσεων
Στην επόμενη σελίδα, Αποδοχή Άδειας Χρήσης

Εγκαταστήστε το ZooKeeper

Βήμα 3) Εμφανίστηκε το ευχαριστήριο μήνυμα
Θα δείτε το ακόλουθο μήνυμα

Εγκαταστήστε το ZooKeeper

Βήμα 4) Κάντε κλικ στο Continue to Configure
Ανανεώστε τη σελίδα μετά από 5 λεπτά και προχωρήστε στη διαμόρφωση

Εγκαταστήστε το ZooKeeper

Βήμα 5) Κάντε κλικ στο «Συνέχεια εκκίνησης»
Στην επόμενη οθόνη, εκκινήστε το ZooKeeper

Εγκαταστήστε το ZooKeeper

Βήμα 6) Συγχαρητήρια!
Τελείωσες!

Εφαρμογές Apache ZooKeeper

Το Apache Zookeeper χρησιμοποιείται για τους ακόλουθους σκοπούς:

  • Διαχείριση της διαμόρφωσης
  • Υπηρεσίες ονοματοδοσίας
  • Επιλογή του αρχηγού
  • Στην ουρά τα μηνύματα
  • Διαχείριση του συστήματος ειδοποιήσεων
  • Syncχρονισμός
  • Διανέμονται Cluster Κοινωνικών Δικτύων

Εταιρείες που χρησιμοποιούν το Zookeeper

  • Yahoo
  • Facebook
  • eBay
  • Twitter
  • Netflix
  • Zynga
  • Nutanix

Μειονεκτήματα της χρήσης Zookeeper

  • Ενδέχεται να προκληθεί απώλεια δεδομένων εάν προσθέτετε νέους διακομιστές Zookeeper
  • Δεν επιτρέπεται η μετεγκατάσταση για τους χρήστες
  • Δεν προσφέρει υποστήριξη για τοποθέτηση και ευαισθητοποίηση Rack
  • Το Zookeeper δεν σας επιτρέπει να μειώσετε τον αριθμό των pods για να αποτρέψετε την τυχαία απώλεια δεδομένων
  • Δεν μπορείτε να αλλάξετε υπηρεσία σε δίκτυο κεντρικού υπολογιστή χωρίς πλήρη επανεγκατάσταση όταν η υπηρεσία αναπτύσσεται σε εικονικό δίκτυο
  • Η υπηρεσία δεν υποστηρίζει την αλλαγή των απαιτήσεων όγκου μετά την ολοκλήρωση της αρχικής ανάπτυξης
  • Υπάρχουν μεγάλοι αριθμοί κόμβων που εμπλέκονται, επομένως μπορεί να υπάρχουν περισσότερα από ένα σημεία αποτυχίας
  • Τα μηνύματα μπορεί να χαθούν στο δίκτυο επικοινωνίας, το οποίο απαιτεί ειδικό λογισμικό για να το ανακτήσει ξανά

Σύνοψη

  • Μια κατανεμημένη εφαρμογή είναι μια εφαρμογή που μπορεί να εκτελεστεί σε πολλαπλά συστήματα σε ένα δίκτυο
  • Το Apache Zookeeper είναι μια κατανεμημένη υπηρεσία συντονισμού ανοιχτού κώδικα που σας βοηθά να διαχειριστείτε ένα μεγάλο σύνολο κεντρικών υπολογιστών
  • Επιτρέπει τον αμοιβαίο αποκλεισμό και τη συνεργασία μεταξύ των διαδικασιών διακομιστή
  • Διακομιστής, πελάτης, ηγέτης, ακόλουθος, σύνολο/Cluster, ZooKeeper WebUI είναι σημαντικά στοιχεία zookeeper
  • Τρεις τύποι Znodes είναι το Persistence, το Ephemeral και το Sequential
  • Το ρολόι ZDM είναι μια εφάπαξ ενεργοποίηση που αποστέλλεται στον πελάτη που ρύθμισε το ρολόι. Προέκυψε όταν αλλάζουν τα δεδομένα από αυτό το ρολόι
  • Το Zookeeper Hadoop χρησιμοποιεί ACL για να ελέγχει την πρόσβαση στα znodes του
  • Διαχείριση της διαμόρφωσης, Υπηρεσίες ονομασίας., επιλογή του αρχηγού, Ουρά των μηνυμάτων, Διαχείριση του συστήματος ειδοποιήσεων, Syncχρονισμός, Διανεμήθηκε Cluster Διοίκηση κ.λπ.
  • Yahoo, Facebook, eBay, Twitter, Netflix είναι μερικές γνωστές εταιρείες που χρησιμοποιούν zookeeper
  • Το κύριο μειονέκτημα του εργαλείου είναι ότι μπορεί να προκύψει απώλεια εάν προσθέτετε νέους διακομιστές Zookeeper