Κοινή χρήση τεχνολογίας

Αφαίρεση διαγράμματος βασικού πλαισίου Κάφκα

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. Μοντέλο ενός σημείου

1. Ονομαστική έννοια

  1. Μεσίτης : αναφέρεται σε έναν κόμβο στο σύμπλεγμα Kafka. Ένα σύμπλεγμα Kafka αποτελείται από πολλαπλούς μεσίτες που συνεργάζονται για να χειριστούν την αποθήκευση, τη μετάδοση και την κατανάλωση μηνυμάτων. Ο Broker διαχειρίζεται ένα ή περισσότερα διαμερίσματα.

  2. Θέμα : Ο παραγωγός στέλνει το μήνυμα στο καθορισμένο Θέμα και ο καταναλωτής εγγράφεται στο Θέμα για να λάβει το μήνυμα. Το θέμα από μόνο του είναι απλώς μια λογική ομαδοποίηση και δεν έχει έννοια φυσικής αποθήκευσης.

  3. Χώρισμα : Είναι ένα υποσύνολο του Θέματος και η βασική μονάδα για την πραγματική αποθήκευση και επεξεργασία μηνυμάτων στον Κάφκα. Κάθε Θέμα μπορεί να χωριστεί σε πολλαπλά διαμερίσματα και κάθε διαμέρισμα είναι μια διατεταγμένη, αμετάβλητη ακολουθία μηνυμάτων.

  4. Πανομοιότυπο: Ένα διαμέρισμα μπορεί να έχει πολλά αντίγραφα.

  5. Leader Broker: Κάτω από πολλά αντίγραφα ενός διαμερίσματος, ο μεσίτης που είναι υπεύθυνος για την επεξεργασία όλων των αιτημάτων ανάγνωσης και εγγραφής για το διαμέρισμα.

  6. FollowerBroker: Κάτω από πολλά αντίγραφα ενός διαμερίσματος, ο μεσίτης που είναι υπεύθυνος για το συγχρονισμό των δεδομένων του αρχηγού βρίσκεται στο διαμέρισμα.

Εισαγάγετε την περιγραφή της εικόνας εδώ

Ο παραγωγός στέλνει το μήνυμα (record) στον Kafka και ο καταναλωτής λαμβάνει τα δεδομένα μέσω της μετατόπισης (offset, παρόμοια με έναν δείκτη πίνακα).

Ταυτόχρονα, κάθε διαμέρισμα θα έχει το δικό του αρχείο καταγραφής. Ο Kafka χρησιμοποιεί αρχεία καταγραφής για την αποθήκευση δεδομένων στο δίσκο.

2. Κατανεμημένη συστάδα-οριζόντια επέκταση

1. Θέμα πολλαπλών κατατμήσεων

Εισαγάγετε την περιγραφή της εικόνας εδώ

Σχετικά με την παραγωγή

Οι παραγωγοί συνδέονται με το σύμπλεγμα Kafka μέσω του Bootstrap Broker. Αυτό το βήμα είναι η δημιουργία της αρχικής σύνδεσης και η λήψη των μεταδεδομένων του συμπλέγματος.

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

Ο παραγωγός πρέπει να καθορίσει ένα θέμα κατά την αποστολή ενός μηνύματος, αλλά η κατάτμηση είναι προαιρετική.

  • Δεν έχει καθοριστεί διαμέρισμα : Εάν ο παραγωγός δεν καθορίσει με μη αυτόματο τρόπο κατατμήσεις, ο Kafka θα διανείμει μηνύματα σε κατατμήσεις σύμφωνα με την προεπιλεγμένη στρατηγική διαμερισμάτων. Η προεπιλεγμένη στρατηγική κατάτμησης είναι η εξής:
    • Εάν το μήνυμα έχει κλειδί, ο Κάφκα θα καθορίσει το διαμέρισμα με βάση την τιμή κατακερματισμού του κλειδιού. Το ίδιο κλειδί εκχωρείται πάντα στο ίδιο διαμέρισμα.
    • Εάν το μήνυμα δεν έχει κλειδί, ο Κάφκα θα χρησιμοποιήσει ψηφοφορία ή τυχαία διανομή του μηνύματος στο διαμέρισμα για να διασφαλίσει ότι το μήνυμα κατανέμεται ομοιόμορφα.
  • Καθορίστε το διαμέρισμα : Οι παραγωγοί μπορούν επίσης να καθορίσουν ρητά διαμερίσματα κατά την αποστολή μηνυμάτων. Με αυτόν τον τρόπο, τα μηνύματα αποστέλλονται απευθείας στο καθορισμένο διαμέρισμα.

Στον Κάφκα, όταν ένας παραγωγός στέλνει ένα μήνυμα σε έναν μεσίτη, η πρώτη λειτουργία του μεσίτη είναι η εγγραφή του μηνύματος στο δίσκο για να διασφαλιστεί η εμμονή και η αξιοπιστία του μηνύματος.

Σχετικά με την κατανάλωση

Οι καταναλωτές στον Κάφκα ανήκουν συνήθως σε μια ομάδα καταναλωτών. Κάθε ομάδα καταναλωτών έχει ένα μοναδικό αναγνωριστικό ομάδας. Η έννοια των ομάδων καταναλωτών χρησιμοποιείται για την επίτευξη εξισορρόπησης φορτίου και παράλληλης κατανάλωσης μηνυμάτων.

Όταν πολλοί καταναλωτές ανήκουν στην ίδια ομάδα, ο Κάφκα θα εκχωρήσει το διαμέρισμα Θέμα στους καταναλωτές της ομάδας.Κάθε διαμέρισμα μπορεί να καταναλωθεί μόνο από έναν καταναλωτή εντός της ομάδας, το οποίο μπορεί να επιτύχει εξισορρόπηση φορτίου.

  • Ένας μόνος καταναλωτής εγγράφεται σε ένα Θέμα

    • Εάν μόνο ένας καταναλωτής εγγραφεί σε ένα Θέμα, τότε ο καταναλωτής θα λάβει όλα τα μηνύματα στο Θέμα.
  • Πολλοί καταναλωτές ανήκουν στην ίδια ομάδα

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

    • Κάθε ομάδα θα καταναλώνει ανεξάρτητα όλα τα μηνύματα στο Θέμα. Δηλαδή, το μήνυμα θα μεταδοθεί σε όλους τους καταναλωτές της ομάδας.

Σχετικά με την προσθήκη νέων κατατμήσεων

Ο Κάφκα θα δημιουργήσει νέα διαμερίσματα στο σύμπλεγμα. Αυτά τα νέα διαμερίσματα θα εκχωρηθούν σε διαφορετικούς Brokers για να επιτευχθεί ισορροπημένη αποθήκευση και υψηλή διαθεσιμότητα δεδομένων. Ο Κάφκα δεν αναδιανέμει ή εξισορροπεί αυτόματα δεδομένα από υπάρχοντα διαμερίσματα σε νέα διαμερίσματα. Τα νέα διαμερίσματα είναι κενά από τη στιγμή που δημιουργούνται και τα δεδομένα θα εγγραφούν σε αυτά τα νέα διαμερίσματα μόνο όταν οι επόμενοι παραγωγοί στείλουν μηνύματα. Η ομάδα καταναλωτών θα αντιληφθεί την αλλαγή στον αριθμό των κατατμήσεων και θα ενεργοποιήσει μια επανεξισορρόπηση.

2. Πολλαπλά αντίγραφα κατατμήσεων

Εισαγάγετε την περιγραφή της εικόνας εδώ

Ο Kafka επιτρέπει πολλαπλά αντίγραφα (Replica) κάθε διαμερίσματος, τα οποία αποθηκεύονται σε διαφορετικούς Brokers. Το ένα αντίγραφο ονομάζεται Leader και είναι υπεύθυνο για την επεξεργασία όλων των αιτημάτων ανάγνωσης και εγγραφής.

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