Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 8811|Απάντηση: 0

Τι ακριβώς κάνει ένας φύλακας ζωολογικού κήπου ανάλυσης;

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 18/7/2017 2:19:01 μ.μ. | | |

Το Zookeeper είναι ένα υποέργο του Hadoop, και παρόλο που προέρχεται από το hadoop, έχω διαπιστώσει ότι το zookeeper χρησιμοποιεί όλο και περισσότερο κατανεμημένα πλαίσια εκτός του hadoop. Σήμερα θέλω να μιλήσω για τον φύλακα του ζωολογικού κήπου, αυτό το άρθρο δεν θα μιλήσει για τον τρόπο χρήσης του φύλακα του ζωολογικού κήπου, αλλά ποιες είναι οι πρακτικές εφαρμογές του φύλακα του ζωολογικού κήπου, ποιοι τύποι εφαρμογών μπορούν να παίξουν τα πλεονεκτήματα του φύλακα του ζωολογικού κήπου και, τέλος, να μιλήσουμε για το ρόλο που μπορεί να παίξει ο φύλακας του ζωολογικού κήπου στην κατανεμημένη αρχιτεκτονική ιστοτόπων.
Το Zookeeper είναι ένα εξαιρετικά αξιόπιστο σύστημα συντονισμού για μεγάλα κατανεμημένα συστήματα. Από αυτόν τον ορισμό, γνωρίζουμε ότι ο φύλακας του ζωολογικού κήπου είναι ένα συντονισμένο σύστημα που δρα σε κατανεμημένα συστήματα. Γιατί τα κατανεμημένα συστήματα χρειάζονται ένα σύστημα συντονισμού; Οι λόγοι είναι οι εξής:

Η ανάπτυξη ενός κατανεμημένου συστήματος είναι ένα πολύ δύσκολο πράγμα και η δυσκολία αντανακλάται κυρίως στη «μερική αποτυχία» του κατανεμημένου συστήματος. Η "μερική αποτυχία" αναφέρεται στη μετάδοση πληροφοριών μεταξύ δύο κόμβων του δικτύου, εάν το δίκτυο αποτύχει, ο αποστολέας δεν μπορεί να γνωρίζει εάν ο παραλήπτης έχει λάβει το μήνυμα και η αιτία αυτής της αποτυχίας είναι περίπλοκη, ο δέκτης μπορεί να έχει λάβει ή να μην έχει λάβει το μήνυμα πριν από το σφάλμα δικτύου ή η διαδικασία του δέκτη είναι νεκρή. Ο μόνος τρόπος με τον οποίο ο αποστολέας μπορεί να πάρει την πραγματική εικόνα είναι να επανασυνδεθεί με τον δέκτη και να ρωτήσει τον παραλήπτη γιατί παρουσιάστηκε το σφάλμα, το οποίο είναι το πρόβλημα "μερικής αποτυχίας" στην ανάπτυξη κατανεμημένου συστήματος.

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

Ας μιλήσουμε για την πρακτική χρήση του φύλακα του ζωολογικού κήπου:

Σενάριο 1: Υπάρχει μια ομάδα διακομιστών που παρέχουν μια συγκεκριμένη υπηρεσία στον πελάτη (για παράδειγμα, η πλευρά του διακομιστή του κατανεμημένου ιστότοπου που έφτιαξα νωρίτερα είναι ένα σύμπλεγμα που αποτελείται από τέσσερις διακομιστές για την παροχή υπηρεσιών στο σύμπλεγμα front-end) και ελπίζουμε ότι ο πελάτης μπορεί να βρει έναν διακομιστή στο σύμπλεγμα διακομιστών κάθε φορά που το ζητά ο πελάτης, έτσι ώστε ο διακομιστής να μπορεί να παρέχει στον πελάτη τις υπηρεσίες που απαιτούνται από τον πελάτη. Για αυτό το σενάριο, πρέπει να έχουμε μια λίστα διακομιστών στο πρόγραμμά μας, από την οποία διαβάζουμε τη λίστα των διακομιστών κάθε φορά που το ζητά ο πελάτης. Τότε αυτή η υπολίστα προφανώς δεν μπορεί να αποθηκευτεί σε έναν μόνο διακομιστή κόμβων, διαφορετικά ο κόμβος θα κλείσει και ολόκληρο το σύμπλεγμα θα αποτύχει και ελπίζουμε ότι αυτή η λίστα θα είναι πολύ διαθέσιμη εκείνη τη στιγμή. Εάν ένας διακομιστής στη λίστα αποθήκευσης είναι κατεστραμμένος, άλλοι διακομιστές μπορούν να αντικαταστήσουν αμέσως τον κατεστραμμένο διακομιστή και ο κατεστραμμένος διακομιστής μπορεί να αφαιρεθεί από τη λίστα, έτσι ώστε ο αποτυχημένος διακομιστής να μπορεί να αποσυρθεί από τη λειτουργία ολόκληρου του συμπλέγματος και όλες αυτές οι λειτουργίες δεν θα εκτελούνται από τον αποτυχημένο διακομιστή, αλλά από τον κανονικό διακομιστή στο σύμπλεγμα. Αυτή είναι μια ενεργή κατανεμημένη δομή δεδομένων που μπορεί να τροποποιήσει ενεργά την κατάσταση των στοιχείων δεδομένων όταν αλλάζουν οι εξωτερικές συνθήκες. Το πλαίσιο Zookeeper παρέχει αυτήν την υπηρεσία. Το όνομα αυτής της υπηρεσίας είναι: Unified Naming Service, η οποία μοιάζει πολύ με την υπηρεσία JNDI στο javaEE.

Σενάριο 2: Υπηρεσία κατανεμημένης κλειδαριάς. Όταν ένα κατανεμημένο σύστημα χειρίζεται δεδομένα, όπως η ανάγνωση δεδομένων, η ανάλυση δεδομένων και, τέλος, η τροποποίηση δεδομένων. Στο κατανεμημένο σύστημα, αυτές οι λειτουργίες μπορεί να διασκορπιστούν σε διαφορετικούς κόμβους του συμπλέγματος, τότε υπάρχει πρόβλημα συνέπειας στη διαδικασία λειτουργίας δεδομένων, εάν είναι ασυνεπής, θα έχουμε λάθος αποτέλεσμα λειτουργίας, σε ένα πρόγραμμα ενιαίας διαδικασίας, το πρόβλημα της συνέπειας είναι εύκολο να λυθεί, αλλά είναι πιο δύσκολο να φτάσετε στο κατανεμημένο σύστημα, επειδή οι λειτουργίες διαφορετικών διακομιστών στο κατανεμημένο σύστημα βρίσκονται σε ανεξάρτητες διεργασίες και τα ενδιάμεσα αποτελέσματα και οι διαδικασίες της λειτουργίας πρέπει να μεταδίδονται μέσω του δικτύου. Τότε είναι πολύ πιο δύσκολο να επιτευχθεί συνέπεια λειτουργίας δεδομένων. Το Zookeeper παρέχει μια υπηρεσία κλειδώματος που λύνει αυτό το πρόβλημα, επιτρέποντάς μας να διασφαλίσουμε τη συνέπεια των λειτουργιών δεδομένων όταν κάνουμε λειτουργίες κατανεμημένων δεδομένων.

Σενάριο 3: Διαχείριση διαμόρφωσης. Σε ένα κατανεμημένο σύστημα, θα αναπτύξουμε μια εφαρμογή υπηρεσίας σε n διακομιστές ξεχωριστά και τα αρχεία διαμόρφωσης αυτών των διακομιστών είναι τα ίδια (για παράδειγμα, στο πλαίσιο κατανεμημένου ιστότοπου που σχεδίασα, υπάρχουν 4 διακομιστές στην πλευρά του διακομιστή, τα προγράμματα στους 4 διακομιστές είναι τα ίδια και τα αρχεία διαμόρφωσης είναι τα ίδια), εάν αλλάξουν οι επιλογές διαμόρφωσης των αρχείων διαμόρφωσης, τότε πρέπει να αλλάξουμε αυτά τα αρχεία διαμόρφωσης ένα προς ένα, εάν πρέπει να αλλάξουμε τους διακομιστές είναι σχετικά μικροί, αυτές οι λειτουργίες δεν είναι πολύ ενοχλητικές, Εάν έχουμε μεγάλο αριθμό κατανεμημένων διακομιστών, όπως το σύμπλεγμα Hadoop μιας μεγάλης εταιρείας Διαδικτύου με χιλιάδες διακομιστές, τότε η αλλαγή των επιλογών διαμόρφωσης μπορεί να είναι ένα ενοχλητικό και επικίνδυνο πράγμα. Αυτή τη στιγμή, το zookeeper μπορεί να είναι χρήσιμο, μπορούμε να χρησιμοποιήσουμε το zookeeper ως μια εξαιρετικά διαθέσιμη μνήμη διαμόρφωσης, να παραδώσουμε κάτι τέτοιο στον zookeeper για διαχείριση, αντιγράφουμε το αρχείο διαμόρφωσης του συμπλέγματος σε έναν κόμβο του συστήματος αρχείων του zookeeper και, στη συνέχεια, χρησιμοποιούμε το zookeeper για να παρακολουθούμε την κατάσταση του αρχείου διαμόρφωσης σε όλα τα κατανεμημένα συστήματα, μόλις διαπιστωθεί ότι το αρχείο διαμόρφωσης έχει αλλάξει, Κάθε διακομιστής θα λάβει μια ειδοποίηση από το Zookeeper για να συγχρονίσει τα αρχεία διαμόρφωσης στο Zookeeper και η υπηρεσία Zookeeper θα διασφαλίσει επίσης ότι η λειτουργία συγχρονισμού είναι ατομική για να διασφαλίσει ότι το αρχείο διαμόρφωσης κάθε διακομιστή ενημερώνεται σωστά.

Σενάριο 4: Παρέχετε λειτουργίες επιδιόρθωσης σφαλμάτων για κατανεμημένα συστήματα. Η διαχείριση του συμπλέγματος είναι δύσκολη και η προσθήκη της υπηρεσίας φύλακα ζωολογικού κήπου στο κατανεμημένο σύστημα μας διευκολύνει να διαχειριστούμε το σύμπλεγμα. Το πιο ενοχλητικό πράγμα στη διαχείριση συμπλέγματος είναι η διαχείριση σφαλμάτων κόμβου, ο φύλακας του ζωολογικού κήπου μπορεί να αφήσει το σύμπλεγμα να επιλέξει έναν υγιή κόμβο ως κύριο, ο κύριος κόμβος θα γνωρίζει την τρέχουσα κατάσταση υγείας κάθε διακομιστή στο σύμπλεγμα, μόλις αποτύχει ένας κόμβος, ο κύριος θα ειδοποιήσει τους άλλους διακομιστές στο σύμπλεγμα, έτσι ώστε να αναδιανείμουν τις υπολογιστικές εργασίες διαφορετικών κόμβων. Το Zookeeper όχι μόνο μπορεί να βρει σφάλματα, αλλά και να ελέγξει τον ελαττωματικό διακομιστή, να δει τι είδους σφάλμα είναι ο διακομιστής σφαλμάτων, εάν το σφάλμα μπορεί να επιδιορθωθεί, ο φύλακας του ζωολογικού κήπου μπορεί να διορθώσει αυτόματα ή να πει στον διαχειριστή του συστήματος τον λόγο του σφάλματος, έτσι ώστε ο διαχειριστής να μπορεί να εντοπίσει γρήγορα το πρόβλημα και να επιδιορθώσει το σφάλμα του κόμβου. Μπορεί να έχετε ακόμα μια ερώτηση, τι πρέπει να κάνω εάν ο πλοίαρχος είναι ελαττωματικός; Ο φύλακας του ζωολογικού κήπου το λαμβάνει επίσης υπόψη, ο φύλακας του ζωολογικού κήπου έχει έναν εσωτερικό «αλγόριθμο για την εκλογή ηγετών», οι πλοίαρχοι μπορούν να επιλεγούν δυναμικά και όταν ο κύριος αποτύχει, ο φύλακας του ζωολογικού κήπου μπορεί να επιλέξει αμέσως έναν νέο κύριο για τη διαχείριση του συμπλέγματος.

Ας μιλήσουμε για τα χαρακτηριστικά του zookeeper:

Το ZooKeeper είναι ένα βελτιωμένο σύστημα αρχείων. Αυτό είναι λίγο παρόμοιο με το Hadoop, αλλά το σύστημα αρχείων ZooKeeper διαχειρίζεται μικρά αρχεία, ενώ το Hadoop διαχειρίζεται πολύ μεγάλα αρχεία.

Το Zookeeper παρέχει πληθώρα «τεχνουργημάτων» που επιτρέπουν σε πολλές λειτουργίες να συντονίζουν δομές δεδομένων και πρωτόκολλα. Για παράδειγμα: κατανεμημένες ουρές, κατανεμημένα κλειδώματα και ο αλγόριθμος «εκλογής ηγέτη» μιας ομάδας κόμβων στο ίδιο επίπεδο.

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

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

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

Ο Zookeeper είναι κυρίως υπεύθυνος για την αποθήκευση και τη διαχείριση των δεδομένων που ενδιαφέρουν όλους και, στη συνέχεια, για την αποδοχή της εγγραφής των παρατηρητών, μόλις αλλάξει η κατάσταση αυτών των δεδομένων, ο Zookeeper θα είναι υπεύθυνος για την ειδοποίηση των παρατηρητών που έχουν εγγραφεί στο Zookeeper να ανταποκριθούν ανάλογα, ώστε να επιτευχθεί ένας τρόπος διαχείρισης master/slave παρόμοιος με το σύμπλεγμα.

Μπορεί να φανεί ότι ο φύλακας του ζωολογικού κήπου είναι πολύ ευνοϊκός για την ανάπτυξη κατανεμημένων συστημάτων, γεγονός που μπορεί να κάνει τα κατανεμημένα συστήματα πιο ισχυρά και αποτελεσματικά.

Πριν από λίγο καιρό, συμμετείχα στην ομάδα ενδιαφέροντος hadoop του τμήματος και εγκατέστησα τα hadoop, mapreduce, Hive και Hbase στο δοκιμαστικό περιβάλλον και εγκατέστησα το zookeeper εκ των προτέρων κατά την εγκατάσταση του hbase. Το Zookeeper μπορεί να παρέχει υπηρεσίες, επομένως περισσότεροι από τους μισούς από τους 3 είναι 2 και περισσότεροι από τους μισούς από τους 4 είναι επίσης δύο, επομένως η εγκατάσταση τριών διακομιστών μπορεί να επιτύχει το αποτέλεσμα 4 διακομιστών. Στη διαδικασία εκμάθησης του hadoop, πιστεύω ότι το zookeeper είναι το πιο δύσκολο υποέργο στην κατανόηση, ο λόγος δεν είναι ότι είναι τεχνικά υπεύθυνο, αλλά ότι η κατεύθυνση εφαρμογής του είναι πολύ μπερδεμένη για μένα, οπότε το πρώτο μου άρθρο σχετικά με την τεχνολογία hadoop ξεκινά με το zookeeper και δεν μιλά για συγκεκριμένη τεχνική υλοποίηση, αλλά από τα σενάρια εφαρμογής του zookeeper, καταλαβαίνω το πεδίο της εφαρμογής του zookeeper, νομίζω ότι η εκμάθηση του zookeeper θα είναι πιο αποτελεσματική με τη μισή προσπάθεια.

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

Μεταφέρθηκε από ttp://www.cnblogs.com/sharpxiajun/archive/2013/06/02/3113923.html




Προηγούμενος:Δεν επιτρέπεται η καταχώριση καταλόγου mvc Αυτός ο εικονικός κατάλογος δεν επιτρέπει περιεχόμενα...
Επόμενος:Το JS/CSS CDN επιταχύνει τις δημόσιες βιβλιοθήκες
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com