Nasaďte Apache Kafka s Docker Compose

Nasadte Apache Kafka S Docker Compose



Docker je bezplatný a open-source kontajnerový softvér, ktorý úplne zmenil spôsob, akým vývojári balia a nasadzujú aplikácie. Docker nám umožňuje zabaliť aplikáciu a všetky požadované závislosti do jednej entity. To znamená, že môžeme distribuovať balík a prostredie je možné replikovať takmer v každom počítači bez konfliktných alebo chýbajúcich balíkov.

V tomto návode sa naučíme, ako môžeme nasadiť klaster Apache Kafka pomocou dockera. To nám umožňuje použiť poskytnutý obrázok dockera na rýchle vytvorenie klastra Kafka v takmer akomkoľvek prostredí.

Začnime základmi a diskutujme o tom, čo je Kafka.







Čo je Apache Kafka?

Apache Kafka je bezplatný, open-source, vysoko škálovateľný, distribuovaný a chybám odolný systém zasielania správ z publikácií a odberov. Je navrhnutý tak, aby zvládal veľký objem, vysokú priepustnosť a dátový tok v reálnom čase, vďaka čomu je vhodný pre mnohé prípady použitia vrátane agregácie protokolov, analýzy v reálnom čase a architektúr riadených udalosťami.



Kafka je založená na distribuovanej architektúre, ktorá mu umožňuje spracovávať veľké množstvo dát na viacerých serveroch. Používa model publikovania a odberu, kde producenti posielajú správy k témam a spotrebitelia sa prihlasujú na ich odber. To umožňuje oddelenú komunikáciu medzi výrobcami a spotrebiteľmi, čo poskytuje vysokú škálovateľnosť a flexibilitu.



Čo je to Docker Compose

Docker compose označuje doplnok alebo nástroj docker na definovanie a spúšťanie aplikácií s viacerými kontajnermi. Docker nás zostaví, aby sme definovali konfiguráciu kontajnera v súbore YAML. Konfiguračný súbor obsahuje špecifikácie kontajnera, ako sú služby, siete a zväzky, ktoré aplikácia vyžaduje.





Pomocou príkazu docker-compose môžeme vytvoriť a spustiť viacero kontajnerov jediným príkazom.

Inštalácia Docker a Docker Compose

Prvým krokom je uistiť sa, že ste nainštalovali dokovaciu stanicu na lokálnom počítači. Ďalšie informácie nájdete v nasledujúcich zdrojoch:



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

V čase písania tohto tutoriálu si inštalácia docker compose vyžaduje inštaláciu pracovnej plochy Docker na cieľovom počítači. Inštalácia dokovacej zostavy ako samostatnej jednotky je preto zastaraná.

Keď nainštalujeme Docker, môžeme nakonfigurovať súbor YAML. Tento súbor obsahuje všetky podrobnosti, ktoré potrebujeme na vytvorenie klastra Kafka pomocou dokovacieho kontajnera.

Nastavenie súboru Docker-Compose.YAML

Vytvorte súbor docker-compose.yaml a upravte ho pomocou svojho obľúbeného textového editora:

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

Ďalej pridajte konfiguračný súbor docker, ako je znázornené v nasledujúcom texte:

verzia : '3'
služby :
ošetrovateľ v zoo :
obrázok : bitnami / ošetrovateľ v zoo : 3.8
prístavov :
- '2181:2181'
zväzkov :
- 'zookeeper_data:/bitnami'
životné prostredie :
- ALLOW_ANONYMOUS_LOGIN = Áno
kafka :
obrázok : doker. toto / bitnami / kafka : 3.3
prístavov :
- '9092:9092'
zväzkov :
- 'kafka_data:/bitnami'
životné prostredie :
- KAFKA_CFG_ZOOKEEPER_CONNECT = ošetrovateľ v zoo : 2181
- ALLOW_PLAINTEXT_LISTENER = Áno
záleží na :
- ošetrovateľ v zoo
zväzkov :
údaje zookeeper_data :
vodič : miestne
kafka_data :
vodič : miestne

Príklad súboru docker nastaví Zookeeper a klaster Kafka, kde je klaster Kafka pripojený k službe Zookeeper na koordináciu. Súbor tiež konfiguruje porty a premenné prostredia pre každú službu, aby umožnil komunikáciu a prístup k službám.

Pomenované zväzky sme tiež nastavili tak, aby uchovávali údaje služieb, aj keď sa kontajnery reštartujú alebo znova vytvoria.

Rozdeľme predchádzajúci súbor na jednoduché časti:

Začíname so službou Zookeeper pomocou obrázka bitnami/zookeeper:3.8. Tento obrázok potom mapuje port 2181 na hostiteľskom počítači na port 2181 na kontajneri. Tiež sme nastavili premennú prostredia ALLOW_ANONYMOUS_LOGIN na „áno“. Nakoniec nastavíme objem, na ktorom služba ukladá dáta, ako objem zookeeper_data.

Druhý blok definuje detaily nastavenia služby Kafka. V tomto prípade použijeme obrázok docker.io/bitnami/kafka:3.3, ktorý mapuje hostiteľský port 9092 na kontajnerový port 9092. Podobne definujeme aj premennú prostredia KAFKA_CFG_ZOOKEEPER_CONNECT a nastavíme jej hodnotu na adresu Zookeeper, ako je namapovaná na port 2181. Druhá premenná prostredia, ktorú definujeme v tejto časti, je premenná prostredia ALLOW_PLAINTEXT_LISTENER. Nastavenie hodnoty tejto premennej prostredia na „áno“ umožňuje nezabezpečenú premávku do klastra Kafka.

Nakoniec uvádzame objem, na ktorom služba Kafka ukladá svoje dáta.

Aby sme zabezpečili, že docker nakonfiguruje zväzky pre Zookeeper a Kafka, musíme ich definovať tak, ako je to znázornené v časti zväzky. Týmto sa nastavia objemy zookeeper_data a kafka_data. Oba zväzky používajú lokálny ovládač, čo znamená, že údaje sú uložené v hostiteľskom počítači.

Tu to máte! Jednoduchý konfiguračný súbor, ktorý vám umožní roztočiť kontajner Kafka pomocou dockeru v jednoduchých krokoch.

Spustenie kontajnera

Aby sme sa uistili, že docker beží, môžeme spustiť kontajner zo súboru YAML pomocou nasledujúceho príkazu:

$ sudo docker zostaviť

Príkaz by mal nájsť konfiguračný súbor YAML a spustiť kontajner so zadanými hodnotami:

Záver

Teraz ste sa naučili, ako môžete nakonfigurovať a spustiť Apache Kafka z konfiguračného súboru YAML na zostavenie dockerov.