Αναπτύξτε το Apache Kafka με το Docker Compose

Anaptyxte To Apache Kafka Me To Docker Compose



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

Σε αυτό το σεμινάριο, θα μάθουμε πώς μπορούμε να αναπτύξουμε ένα σύμπλεγμα Apache Kafka χρησιμοποιώντας το docker. Αυτό μας επιτρέπει να χρησιμοποιήσουμε την παρεχόμενη εικόνα docker για να περιστρέψουμε γρήγορα ένα σύμπλεγμα Kafka σε σχεδόν οποιοδήποτε περιβάλλον.

Ας ξεκινήσουμε με τα βασικά και ας συζητήσουμε τι είναι ο Κάφκα.







Τι είναι ο Απάτσι Κάφκα;

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



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



Τι είναι το Docker Compose

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





Χρησιμοποιώντας την εντολή docker-compose, μπορούμε να δημιουργήσουμε και να ξεκινήσουμε πολλά κοντέινερ με μία μόνο εντολή.

Εγκατάσταση του Docker και του Docker Compose

Το πρώτο βήμα είναι να βεβαιωθείτε ότι έχετε εγκαταστήσει το docker στον τοπικό σας υπολογιστή. Μπορείτε να ελέγξετε τους παρακάτω πόρους για να μάθετε περισσότερα:



  • https://linuxhint.com/install_configure_docker_ubuntu/
  • https://linuxhint.com/install-docker-debian/
  • https://linuxhint.com/install_docker_debian_10/
  • https://linuxhint.com/install-docker-ubuntu-22-04/
  • https://linuxhint.com/install-docker-on-pop_os/
  • https://linuxhint.com/how-to-install-docker-desktop-windows/
  • https://linuxhint.com/install-use-docker-centos-8/
  • https://linuxhint.com/install_docker_on_raspbian_os/

Από τη σύνταξη αυτού του σεμιναρίου, η εγκατάσταση του docker compose απαιτεί την εγκατάσταση της επιφάνειας εργασίας Docker στον υπολογιστή-στόχο σας. Ως εκ τούτου, η εγκατάσταση του docker compose ως αυτόνομης μονάδας έχει καταργηθεί.

Μόλις εγκαταστήσουμε το Docker, μπορούμε να διαμορφώσουμε το αρχείο YAML. Αυτό το αρχείο περιέχει όλες τις λεπτομέρειες που χρειαζόμαστε για να δημιουργήσουμε ένα σύμπλεγμα Kafka χρησιμοποιώντας ένα κοντέινερ docker.

Ρύθμιση του Docker-Compose.YAML

Δημιουργήστε το docker-compose.yaml και επεξεργαστείτε με τον αγαπημένο σας επεξεργαστή κειμένου:

$ touch docker-compose.yaml
$ vim docker-compose.yaml

Στη συνέχεια, προσθέστε το αρχείο διαμόρφωσης docker όπως φαίνεται παρακάτω:

εκδοχή : '3'
Υπηρεσίες :
φύλακας ζωολογικού κήπου :
εικόνα : bitnami / φύλακας ζωολογικού κήπου : 3.8
λιμάνια :
- '2181:2181'
τόμους :
- 'zookeeper_data:/bitnami'
περιβάλλον :
- ALLOW_ANONYMOUS_LOGIN = Ναί
κάφκα :
εικόνα : λιμενεργάτης. Αυτό / bitnami / κάφκα : 3.3
λιμάνια :
- '9092:9092'
τόμους :
- 'kafka_data:/bitnami'
περιβάλλον :
- KAFKA_CFG_ZOOKEEPER_CONNECT = φύλακας ζωολογικού κήπου : 2181
- ALLOW_PLAINTEXT_LISTENER = Ναί
εξαρτάται από :
- φύλακας ζωολογικού κήπου
τόμους :
zookeeper_data :
οδηγός : τοπικός
kafka_data :
οδηγός : τοπικός

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

Ρυθμίσαμε επίσης τους κατονομαζόμενους τόμους για να διατηρούνται τα δεδομένα των υπηρεσιών ακόμα και αν τα κοντέινερ επανεκκινηθούν ή αναδημιουργηθούν.

Ας αναλύσουμε το προηγούμενο αρχείο σε απλές ενότητες:

Ξεκινάμε με την υπηρεσία Zookeeper χρησιμοποιώντας την εικόνα bitnami/zookeeper:3.8. Στη συνέχεια, αυτή η εικόνα αντιστοιχίζει τη θύρα 2181 στον κεντρικό υπολογιστή στη θύρα 2181 στο κοντέινερ. Επίσης, ορίσαμε τη μεταβλητή περιβάλλοντος ALLOW_ANONYMOUS_LOGIN σε 'ναι'. Τέλος, ορίζουμε τον τόμο στον οποίο η υπηρεσία αποθηκεύει τα δεδομένα ως τόμος zookeeper_data.

Το δεύτερο μπλοκ ορίζει τις λεπτομέρειες για τη ρύθμιση της υπηρεσίας Kafka. Σε αυτήν την περίπτωση, χρησιμοποιούμε την εικόνα docker.io/bitnami/kafka:3.3 που αντιστοιχίζει τη θύρα κεντρικού υπολογιστή 9092 στη θύρα κοντέινερ 9092. Ομοίως, ορίζουμε επίσης τη μεταβλητή περιβάλλοντος KAFKA_CFG_ZOOKEEPER_CONNECT και ορίζουμε την τιμή της στη διεύθυνση του Zookeeper όπως αντιστοιχίζεται σε θύρα 2181. Η δεύτερη μεταβλητή περιβάλλοντος που ορίζουμε σε αυτήν την ενότητα είναι η μεταβλητή περιβάλλοντος ALLOW_PLAINTEXT_LISTENER. Η ρύθμιση της τιμής αυτής της μεταβλητής περιβάλλοντος σε 'ναι' επιτρέπει την μη ασφαλή κυκλοφορία στο σύμπλεγμα Kafka.

Τέλος, παρέχουμε τον τόμο στον οποίο η υπηρεσία Kafka αποθηκεύει τα δεδομένα της.

Για να διασφαλίσουμε ότι το docker ρυθμίζει τους τόμους για Zookeeper και Kafka, πρέπει να τους ορίσουμε όπως φαίνεται στην ενότητα τόμοι. Αυτό ρυθμίζει τους τόμους zookeeper_data και kafka_data. Και οι δύο τόμοι χρησιμοποιούν το τοπικό πρόγραμμα οδήγησης που σημαίνει ότι τα δεδομένα αποθηκεύονται στον κεντρικό υπολογιστή.

Ορίστε το! Ένα απλό αρχείο διαμόρφωσης που σας επιτρέπει να περιστρέψετε ένα δοχείο Kafka χρησιμοποιώντας docker με απλά βήματα.

Λειτουργία του κοντέινερ

Για να διασφαλίσουμε ότι το docker εκτελείται, μπορούμε να εκτελέσουμε το κοντέινερ από το αρχείο YAML με την ακόλουθη εντολή:

$ sudo docker συνθέτω

Η εντολή πρέπει να εντοπίσει το αρχείο διαμόρφωσης YAML και να εκτελέσει το κοντέινερ με τις καθορισμένες τιμές:

συμπέρασμα

Τώρα μάθατε πώς μπορείτε να διαμορφώσετε και να εκτελέσετε το Apache Kafka από ένα αρχείο διαμόρφωσης YAML compose docker.