Desplegueu Apache Kafka amb Docker Compose

Desplegueu Apache Kafka Amb Docker Compose



Docker és un programari de contenidors gratuït i de codi obert que ha canviat completament el panorama de com els desenvolupadors empaqueten i despleguen aplicacions. Docker ens permet empaquetar una aplicació i totes les dependències necessàries en una sola entitat. Això vol dir que podem distribuir el paquet i que l'entorn es pot replicar a gairebé totes les màquines sense que hi hagi paquets en conflicte o que faltin.

En aquest tutorial, aprendrem com podem implementar un clúster Apache Kafka mitjançant el docker. Això ens permet utilitzar la imatge docker proporcionada per fer girar ràpidament un clúster de Kafka en gairebé qualsevol entorn.

Comencem amb els conceptes bàsics i discutim què és Kafka.







Què és Apache Kafka?

Apache Kafka és un sistema de missatgeria de publicació i subscripció gratuït, de codi obert, altament escalable, distribuït i tolerant a errors. Està dissenyat per gestionar un gran volum, un alt rendiment i un flux de dades en temps real, el que el fa adequat per a molts casos d'ús, com ara l'agregació de registres, l'anàlisi en temps real i les arquitectures basades en esdeveniments.



Kafka es basa en una arquitectura distribuïda que li permet gestionar grans quantitats de dades en diversos servidors. Utilitza un model de publicació-subscripció on els productors envien missatges als temes i els consumidors s'hi subscriuen per rebre'ls. Això permet una comunicació desacoblada entre els productors i els consumidors, proporcionant una gran escalabilitat i flexibilitat.



Què és el Docker Compose

Docker compose fa referència a un connector o eina de Docker per definir i executar aplicacions de diversos contenidors. Docker ens compon per definir la configuració del contenidor en un fitxer YAML. El fitxer de configuració inclou les especificacions del contenidor, com ara els serveis, les xarxes i els volums que requereix una aplicació.





Mitjançant l'ordre docker-compose, podem crear i iniciar diversos contenidors amb una sola ordre.

Instal·lació de Docker i Docker Compose

El primer pas és assegurar-vos que heu instal·lat el docker a la vostra màquina local. Podeu consultar els recursos següents per obtenir més informació:



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

A l'hora d'escriure aquest tutorial, la instal·lació de Docker Compose requereix instal·lar l'escriptori Docker a la vostra màquina de destinació. Per tant, la instal·lació de Docker Compose com a unitat autònoma està obsoleta.

Un cop instal·lat el Docker, podem configurar el fitxer YAML. Aquest fitxer conté tots els detalls que necessitem per crear un clúster de Kafka mitjançant un contenidor docker.

Configuració de Docker-Compose.YAML

Creeu el docker-compose.yaml i editeu-lo amb el vostre editor de text preferit:

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

A continuació, afegiu el fitxer de configuració de Docker tal com es mostra a continuació:

versió : '3'
serveis :
cuidador del zoològic :
imatge : bitnami / cuidador del zoològic : 3.8
ports :
- '2181:2181'
volums :
- 'zookeeper_data:/bitnami'
medi ambient :
- ALLOW_ANONYMOUS_LOGIN =
kafka :
imatge : docker. això / bitnami / kafka : 3.3
ports :
- '9092:9092'
volums :
- 'kafka_data:/bitnami'
medi ambient :
- KAFKA_CFG_ZOOKEEPER_CONNECT = cuidador del zoològic : 2181
- ALLOW_PLAINTEXT_LISTENER =
depén de :
- cuidador del zoològic
volums :
zookeeper_data :
conductor : locals
kafka_data :
conductor : locals

El fitxer Docker d'exemple configura un clúster Zookeeper i un clúster Kafka on el clúster Kafka està connectat al servei Zookeeper per a la coordinació. El fitxer també configura els ports i les variables d'entorn per a cada servei per permetre la comunicació i l'accés als serveis.

També configurem els volums anomenats per mantenir les dades dels serveis encara que els contenidors es reiniciïn o es tornin a crear.

Desglossem el fitxer anterior en seccions senzilles:

Comencem amb el servei Zookeeper utilitzant la imatge bitnami/zookeeper:3.8. A continuació, aquesta imatge mapeja el port 2181 de la màquina amfitrió al port 2181 del contenidor. També establim la variable d'entorn ALLOW_ANONYMOUS_LOGIN a 'sí'. Finalment, establim el volum en què el servei emmagatzema les dades com a volum zookeeper_data.

El segon bloc defineix els detalls per configurar el servei Kafka. En aquest cas, utilitzem la imatge docker.io/bitnami/kafka:3.3 que mapeja el port amfitrió 9092 al port del contenidor 9092. De la mateixa manera, també definim la variable d'entorn KAFKA_CFG_ZOOKEEPER_CONNECT i establim el seu valor a l'adreça de Zookeeper tal com està assignat a port 2181. La segona variable d'entorn que definim en aquesta secció és la variable d'entorn ALLOW_PLAINTEXT_LISTENER. Establir el valor d'aquesta variable d'entorn a 'sí' permet trànsit no segur al clúster de Kafka.

Finalment, proporcionem el volum en què el servei Kafka emmagatzema les seves dades.

Per assegurar-nos que el docker configura els volums per a Zookeeper i Kafka, hem de definir-los tal com es mostra a la secció de volums. Això configura els volums zookeeper_data i kafka_data. Tots dos volums utilitzen el controlador local, el que significa que les dades s'emmagatzemen a la màquina amfitriona.

Aquí ho tens! Un fitxer de configuració senzill que us permet fer girar un contenidor Kafka amb Docker en passos senzills.

Execució del contenidor

Per assegurar-nos que el docker s'executa, podem executar el contenidor des del fitxer YAML amb l'ordre següent:

$ sudo docker compondre

L'ordre hauria de localitzar el fitxer de configuració YAML i executar el contenidor amb els valors especificats:

Conclusió

Ara heu après com podeu configurar i executar l'Apache Kafka des d'un fitxer de configuració YAML de composició docker.