Implementirajte Apache Kafku uz Docker Compose

Implementirajte Apache Kafku Uz Docker Compose



Docker je besplatni softver za kontejnerizaciju otvorenog koda koji je potpuno promijenio način na koji programeri pakiraju i postavljaju aplikacije. Docker nam omogućuje pakiranje aplikacije i svih potrebnih ovisnosti u jednu cjelinu. To znači da možemo distribuirati paket, a okruženje se može replicirati u gotovo svakom stroju bez sukoba ili nedostajanja paketa.

U ovom vodiču naučit ćemo kako možemo implementirati Apache Kafka klaster pomoću dockera. To nam omogućuje da koristimo isporučenu docker sliku za brzo pokretanje Kafka klastera u gotovo svakom okruženju.

Počnimo s osnovama i raspravimo što je Kafka.







Što je Apache Kafka?

Apache Kafka je besplatan, otvorenog izvornog koda, visoko skalabilan, distribuiran i tolerantan na pogreške sustav za objavljivanje i pretplatu. Dizajniran je za rukovanje velikom količinom, visokom propusnošću i protokom podataka u stvarnom vremenu, što ga čini prikladnim za mnoge slučajeve upotrebe, uključujući agregaciju dnevnika, analitiku u stvarnom vremenu i arhitekture vođene događajima.



Kafka se temelji na distribuiranoj arhitekturi koja mu omogućuje rukovanje velikim količinama podataka na više poslužitelja. Koristi se modelom objavljivanja i pretplate gdje proizvođači šalju poruke temama, a potrošači se pretplaćuju na njih kako bi ih primili. To omogućuje razdvojenu komunikaciju između proizvođača i potrošača, pružajući visoku skalabilnost i fleksibilnost.



Što je Docker Compose

Docker compose odnosi se na docker dodatak ili alat za definiranje i pokretanje aplikacija s više spremnika. Docker nas sastavlja da definiramo konfiguraciju spremnika u YAML datoteci. Konfiguracijska datoteka uključuje specifikacije spremnika kao što su usluge, mreže i volumeni koje zahtijeva aplikacija.





Pomoću naredbe docker-compose možemo stvoriti i pokrenuti više spremnika jednom naredbom.

Instaliranje Dockera i Docker Composea

Prvi korak je provjeriti jeste li instalirali docker na vašem lokalnom računalu. Možete pogledati sljedeće resurse da biste saznali više:



  • 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/

Od pisanja ovog vodiča, instaliranje docker compose zahtijeva instaliranje Docker radne površine na vašem ciljnom računalu. Stoga je instaliranje docker composea kao samostalne jedinice zastarjelo.

Nakon što instaliramo Docker, možemo konfigurirati YAML datoteku. Ova datoteka sadrži sve pojedinosti koje su nam potrebne za pokretanje Kafka klastera pomoću docker spremnika.

Postavljanje Docker-Compose.YAML

Napravite docker-compose.yaml i uredite u svom omiljenom uređivaču teksta:

$ dodir docker-compose.yaml
$ vim docker-compose.yaml

Zatim dodajte konfiguracijsku datoteku dockera kao što je prikazano u nastavku:

verzija : '3'
usluge :
čuvar zoo vrta :
slika : bitnami / čuvar zoo vrta : 3.8
luke :
- '2181:2181'
svezaci :
- 'zookeeper_data:/bitnami'
okoliš :
- ALLOW_ANONYMOUS_LOGIN = Da
kafka :
slika : lučki radnik. ovaj / bitnami / kafka : 3.3
luke :
- '9092:9092'
svezaci :
- 'kafka_data:/bitnami'
okoliš :
- KAFKA_CFG_ZOOKEEPER_CONNECT = čuvar zoo vrta : 2181
- ALLOW_PLAINTEXT_LISTENER = Da
ovisi o :
- čuvar zoo vrta
svezaci :
zookeeper_data :
vozač : lokalni
kafka_podaci :
vozač : lokalni

Primjer docker datoteke postavlja Zookeeper i Kafka klaster gdje je Kafka klaster povezan s uslugom Zookeeper radi koordinacije. Datoteka također konfigurira priključke i varijable okruženja za svaku uslugu kako bi se omogućila komunikacija i pristup uslugama.

Također smo postavili imenovane volumene da zadrže podatke usluga čak i ako se spremnici ponovno pokrenu ili ponovno kreiraju.

Podijelimo prethodnu datoteku na jednostavne dijelove:

Počinjemo s uslugom Zookeeper koristeći bitnami/zookeeper:3.8 sliku. Ova slika zatim preslikava priključak 2181 na glavnom računalu u priključak 2181 na spremniku. Također smo postavili varijablu okoline ALLOW_ANONYMOUS_LOGIN na 'da'. Na kraju postavljamo volumen na kojem servis pohranjuje podatke kao zookeeper_data volume.

Drugi blok definira detalje za postavljanje usluge Kafka. U ovom slučaju koristimo sliku docker.io/bitnami/kafka:3.3 koja mapira host port 9092 u port kontejnera 9092. Slično, također definiramo varijablu okruženja KAFKA_CFG_ZOOKEEPER_CONNECT i postavljamo njenu vrijednost na adresu Zookeepera kako je mapirana na port 2181. Druga varijabla okruženja koju definiramo u ovom odjeljku je varijabla okruženja ALLOW_PLAINTEXT_LISTENER. Postavljanje vrijednosti ove varijable okoline na 'da' dopušta nezaštićeni promet prema Kafka klasteru.

Na kraju, dajemo volumen na kojem usluga Kafka pohranjuje svoje podatke.

Kako bismo osigurali da docker konfigurira volumene za Zookeeper i Kafku, moramo ih definirati kao što je prikazano u odjeljku volumena. Time se postavljaju volumeni zookeeper_data i kafka_data. Oba volumena koriste lokalni upravljački program što znači da su podaci pohranjeni na glavnom računalu.

Eto ga! Jednostavna konfiguracijska datoteka koja vam omogućuje da okrenete Kafka spremnik pomoću dockera u jednostavnim koracima.

Pokretanje spremnika

Kako bismo bili sigurni da docker radi, možemo pokrenuti spremnik iz YAML datoteke sljedećom naredbom:

$ sudo docker sastaviti

Naredba bi trebala locirati YAML konfiguracijsku datoteku i pokrenuti spremnik s navedenim vrijednostima:

Zaključak

Sada ste naučili kako možete konfigurirati i pokrenuti Apache Kafku iz docker compose YAML konfiguracijske datoteke.