Κορυφαίες 14 ερωτήσεις και απαντήσεις για συνέντευξη του Κάφκα (2025)
Ακολουθούν ερωτήσεις και απαντήσεις συνέντευξης Kafka για νεοφώτιστους καθώς και έμπειρους υποψήφιους για να πάρουν τη δουλειά των ονείρων τους.
1) Αναφέρετε τι είναι ο Απάτσι Κάφκα;
Το Apache Kafka είναι ένα σύστημα ανταλλαγής μηνυμάτων δημοσίευσης-συνδρομής που αναπτύχθηκε από τον Apache γραμμένο στη Scala. Είναι μια κατανεμημένη, διαμερισμένη και αναπαραγόμενη υπηρεσία καταγραφής.
Δωρεάν λήψη PDF: Ερωτήσεις και απαντήσεις στη συνέντευξη του Κάφκα
2) Αναφέρετε ποια είναι η παραδοσιακή μέθοδος μεταφοράς μηνυμάτων;
Η παραδοσιακή μέθοδος μεταφοράς μηνυμάτων περιλαμβάνει δύο μεθόδους
- Ουρά: Σε μια ουρά, μια ομάδα καταναλωτών μπορεί να διαβάσει μήνυμα από τον διακομιστή και κάθε μήνυμα πηγαίνει σε έναν από αυτούς
- Δημοσίευση-Εγγραφή: Σε αυτό το μοντέλο, τα μηνύματα μεταδίδονται σε όλους τους καταναλωτές
Ο Κάφκα καλύπτει την αφαίρεση του μοναδικού καταναλωτή που γενικεύει και τα δύο παραπάνω - την ομάδα καταναλωτών.
3) Αναφέρετε ποια είναι τα οφέλη του Apache Kafka έναντι της παραδοσιακής τεχνικής;
Ο Apache Kafka έχει τα ακόλουθα οφέλη πάνω από την παραδοσιακή τεχνική ανταλλαγής μηνυμάτων
- Γρήγορα: Ένας μεσίτης Kafka μπορεί να εξυπηρετήσει χιλιάδες πελάτες διαχειριζόμενος megabyte αναγνώσεων και εγγραφών ανά δευτερόλεπτο
- Κλιμακούμενος: Τα δεδομένα διαμερίζονται και βελτιστοποιούνται σε ένα σύμπλεγμα μηχανών για να ενεργοποιηθούν μεγαλύτερα δεδομένα
- Διαρκής: Τα μηνύματα είναι μόνιμα και αναπαράγονται μέσα στο σύμπλεγμα για να αποτραπεί η απώλεια δεδομένων
- Διανέμεται από το Design: Παρέχει εγγυήσεις ανοχής σφαλμάτων και ανθεκτικότητα
4) Αναφέρετε τι σημαίνει μεσίτης στον Κάφκα;
Στο σύμπλεγμα Kafka, ο όρος μεσίτη χρησιμοποιείται για να αναφέρεται Διακομιστής.
5) Αναφέρετε ποιο είναι το μέγιστο μέγεθος του μηνύματος που μπορεί να λάβει ο διακομιστής Kafka;
Το μέγιστο μέγεθος του μηνύματος που μπορεί να λάβει ο διακομιστής Kafka είναι 1000000 byte.
6) Εξηγήστε τι είναι το Zookeeper στον Κάφκα; Μπορούμε να χρησιμοποιήσουμε το Kafka χωρίς Zookeeper;
Το Zookeeper είναι μια υπηρεσία συντονισμού ανοιχτού κώδικα, υψηλής απόδοσης που χρησιμοποιείται για κατανεμημένες εφαρμογές προσαρμοσμένη από τον Kafka. Όχι, δεν είναι δυνατό να περάσεις bye-pass το Zookeeper και να συνδεθείς απευθείας με τον μεσίτη Kafka. Μόλις το Zookeeper απενεργοποιηθεί, δεν μπορεί να εξυπηρετήσει το αίτημα πελάτη.
- Το Zookeeper χρησιμοποιείται βασικά για την επικοινωνία μεταξύ διαφορετικών κόμβων σε ένα σύμπλεγμα
- Στον Κάφκα, χρησιμοποιείται για τη δέσμευση μετατόπισης, οπότε αν ο κόμβος αποτύχει σε κάθε περίπτωση, μπορεί να ανακτηθεί από την προηγουμένως δεσμευμένη μετατόπιση
- Εκτός από αυτό, κάνει και άλλες δραστηριότητες όπως ανίχνευση ηγέτη, κατανεμημένο συγχρονισμό, διαχείριση διαμόρφωσης, προσδιορίζει πότε ένας νέος κόμβος φεύγει ή ενώνεται, το σύμπλεγμα, την κατάσταση του κόμβου σε πραγματικό χρόνο κ.λπ.
7) Εξηγήστε πώς καταναλώνεται το μήνυμα από τον καταναλωτή στον Κάφκα;
Η μεταφορά των μηνυμάτων στον Κάφκα γίνεται χρησιμοποιώντας το sendfile API. Επιτρέπει τη μεταφορά byte από την υποδοχή στο δίσκο μέσω αντιγράφων εξοικονόμησης χώρου πυρήνα και κλήσης μεταξύ του χρήστη του πυρήνα πίσω στον πυρήνα.
8) Εξηγήστε πώς μπορείτε να βελτιώσετε την απόδοση ενός απομακρυσμένου καταναλωτή;
Εάν ο καταναλωτής βρίσκεται σε διαφορετικό κέντρο δεδομένων από τον μεσίτη, μπορεί να χρειαστεί να ρυθμίσετε το μέγεθος του buffer της υποδοχής για να αποσβέσετε τη μεγάλη καθυστέρηση δικτύου.
9) Εξηγήστε πώς μπορείτε να λάβετε ακριβώς μία φορά μηνύματα από τον Κάφκα κατά την παραγωγή δεδομένων;
Κατά τη διάρκεια των δεδομένων, της παραγωγής για να λάβετε ακριβώς μόλις ένα μήνυμα από τον Κάφκα πρέπει να ακολουθήσετε δύο πράγματα αποφυγή διπλοτύπων κατά την κατανάλωση δεδομένων και αποφυγή αντιγραφής κατά την παραγωγή δεδομένων. Ακολουθούν οι δύο τρόποι για να αποκτήσετε ακριβώς μία σημασιολογία κατά την παραγωγή δεδομένων:
- Διαθέστε ένα μόνο πρόγραμμα εγγραφής ανά διαμέρισμα, κάθε φορά που λαμβάνετε ένα σφάλμα δικτύου ελέγχει το τελευταίο μήνυμα σε αυτό το διαμέρισμα για να δει εάν η τελευταία εγγραφή σας πέτυχε
- Στο μήνυμα συμπεριλάβετε ένα πρωτεύον κλειδί (UUID ή κάτι τέτοιο) και αφαιρέστε το αντίγραφο στον καταναλωτή
10) Εξηγήστε πώς μπορείτε να μειώσετε την ανατροπή στο ISR; Πότε ο μεσίτης αποχωρεί από το ISR;
Το ISR είναι ένα σύνολο αντιγράφων μηνυμάτων που συγχρονίζονται πλήρως με τους ηγέτες, με άλλα λόγια το ISR έχει όλα τα μηνύματα που δεσμεύονται. Το ISR θα πρέπει πάντα να περιλαμβάνει όλα τα αντίγραφα μέχρι να υπάρξει πραγματική αποτυχία. Ένα αντίγραφο θα απορριφθεί από το ISR εάν αποκλίνει από το αρχηγό.
11) Γιατί απαιτείται η αναπαραγωγή στον Κάφκα;
Η αναπαραγωγή του μηνύματος στο Kafka διασφαλίζει ότι οποιοδήποτε δημοσιευμένο μήνυμα δεν θα χαθεί και μπορεί να καταναλωθεί σε περίπτωση σφάλματος μηχανήματος, σφάλματος προγράμματος ή πιο συνηθισμένων αναβαθμίσεων λογισμικού.
12) Τι σημαίνει εάν το αντίγραφο παραμένει εκτός ISR για μεγάλο χρονικό διάστημα;
Εάν ένα αντίγραφο παραμείνει εκτός ISR για μεγάλο χρονικό διάστημα, υποδηλώνει ότι ο ακόλουθος δεν είναι σε θέση να ανακτήσει δεδομένα τόσο γρήγορα όσο τα δεδομένα που έχουν συσσωρευτεί στον αρχηγό.
13) Αναφέρετε τι συμβαίνει εάν το προτιμώμενο αντίγραφο δεν βρίσκεται στο ISR;
Εάν το προτιμώμενο αντίγραφο δεν βρίσκεται στο ISR, ο ελεγκτής δεν θα μετακινηθεί ηγεσία στο προτιμώμενο αντίγραφο.
14) Είναι δυνατή η μετατόπιση του μηνύματος μετά την παραγωγή;
Δεν μπορείτε να το κάνετε αυτό από μια τάξη που συμπεριφέρεται ως παραγωγός όπως στα περισσότερα συστήματα ουρών, ο ρόλος της είναι να πυροδοτήσει και να ξεχάσει τα μηνύματα. Ο μεσίτης θα κάνει την υπόλοιπη δουλειά, όπως τον κατάλληλο χειρισμό μεταδεδομένων με αναγνωριστικά, μετατοπίσεις, κ.λπ. Ως καταναλωτής του μηνύματος, μπορείτε να λάβετε τη μετατόπιση από έναν μεσίτη Kafka. Αν κοιτάξεις στο SimpleConsumer τάξη, θα παρατηρήσετε ότι φέρνει MultiFetchResponse αντικείμενα που περιλαμβάνουν μετατοπίσεις ως λίστα. Επιπλέον, όταν επαναλάβετε το Μήνυμα του Κάφκα, θα έχετε MessageAndOffset αντικείμενα που περιλαμβάνουν και τα δύο, τη μετατόπιση και το μήνυμα που εστάλη.
Αυτές οι ερωτήσεις συνέντευξης θα βοηθήσουν επίσης στο viva (προφορικά) σας