Implante o Apache Kafka com o Docker Compose

Implante O Apache Kafka Com O Docker Compose



O Docker é um software de conteinerização gratuito e de código aberto que mudou completamente o cenário de como os desenvolvedores empacotam e implementam aplicativos. O Docker nos permite empacotar um aplicativo e todas as dependências necessárias em uma única entidade. Isso significa que podemos distribuir o pacote e o ambiente pode ser replicado em quase todas as máquinas sem conflitos ou pacotes ausentes.

Neste tutorial, aprenderemos como podemos implantar um cluster Apache Kafka usando o docker. Isso nos permite usar a imagem do docker fornecida para ativar rapidamente um cluster Kafka em praticamente qualquer ambiente.

Vamos começar com o básico e discutir o que é Kafka.







O que é Apache Kafka?

O Apache Kafka é um sistema de mensagens de publicação-assinatura gratuito, de código aberto, altamente escalável, distribuído e tolerante a falhas. Ele foi projetado para lidar com um alto volume, alta taxa de transferência e fluxo de dados em tempo real, tornando-o adequado para muitos casos de uso, incluindo agregação de log, análise em tempo real e arquiteturas orientadas a eventos.



O Kafka é baseado em uma arquitetura distribuída que permite lidar com grandes quantidades de dados em vários servidores. Ele usa um modelo de publicação-assinatura onde os produtores enviam mensagens para os tópicos e os consumidores se inscrevem para recebê-los. Isso permite a comunicação desacoplada entre os produtores e consumidores, proporcionando alta escalabilidade e flexibilidade.



O que é o Docker Compose

Docker compose refere-se a um plug-in ou ferramenta docker para definir e executar aplicativos de vários contêineres. O Docker nos compõe para definir a configuração do container em um arquivo YAML. O arquivo de configuração inclui as especificações do contêiner, como serviços, redes e volumes exigidos por um aplicativo.





Usando o comando docker-compose, podemos criar e iniciar vários contêineres com um único comando.

Instalando o Docker e o Docker Compose

A primeira etapa é garantir que você instalou o docker em sua máquina local. Você pode verificar os seguintes recursos para saber mais:



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

Ao escrever este tutorial, a instalação do docker compose requer a instalação da área de trabalho do Docker em sua máquina de destino. Portanto, a instalação do docker compose como uma unidade autônoma está obsoleta.

Depois de instalar o Docker, podemos configurar o arquivo YAML. Este arquivo contém todos os detalhes que precisamos para ativar um cluster Kafka usando um contêiner docker.

Configurando o Docker-Compose.YAML

Crie o docker-compose.yaml e edite com seu editor de texto favorito:

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

Em seguida, adicione o arquivo de configuração do docker conforme mostrado a seguir:

versão : '3'
Serviços :
funcionário do zoológico :
imagem : bitnami / funcionário do zoológico : 3.8
portas :
- '2181:2181'
volumes :
- 'zookeeper_data:/bitnami'
ambiente :
- ALLOW_ANONYMOUS_LOGIN = sim
kafka :
imagem : docker. esse / bitnami / kafka : 3.3
portas :
- '9092:9092'
volumes :
- 'kafka_data:/bitnami'
ambiente :
- KAFKA_CFG_ZOOKEEPER_CONNECT = funcionário do zoológico : 2181
- ALLOW_PLAINTEXT_LISTENER = sim
depende de :
- funcionário do zoológico
volumes :
zookeeper_data :
motorista : local
kafka_data :
motorista : local

O arquivo de encaixe de exemplo configura um cluster Zookeeper e Kafka onde o cluster Kafka está conectado ao serviço Zookeeper para coordenação. O arquivo também configura as portas e variáveis ​​de ambiente para cada serviço para permitir a comunicação e o acesso aos serviços.

Também configuramos os volumes nomeados para manter os dados dos serviços mesmo se os contêineres forem reiniciados ou recriados.

Vamos dividir o arquivo anterior em seções simples:

Começamos com o serviço Zookeeper usando a imagem bitnami/zookeeper:3.8. Essa imagem então mapeia a porta 2181 na máquina host para a porta 2181 no contêiner. Também definimos a variável de ambiente ALLOW_ANONYMOUS_LOGIN como “yes”. Por fim, definimos o volume no qual o serviço armazena os dados como zookeeper_data volume.

O segundo bloco define os detalhes para configurar o serviço Kafka. Nesse caso, usamos a imagem docker.io/bitnami/kafka:3.3 que mapeia a porta do host 9092 para a porta do contêiner 9092. Da mesma forma, também definimos a variável de ambiente KAFKA_CFG_ZOOKEEPER_CONNECT e definimos seu valor para o endereço do Zookeeper conforme mapeado para porta 2181. A segunda variável de ambiente que definimos nesta seção é a variável de ambiente ALLOW_PLAINTEXT_LISTENER. Definir o valor dessa variável de ambiente como “yes” permite o tráfego não seguro para o cluster Kafka.

Por fim, fornecemos o volume no qual o serviço Kafka armazena seus dados.

Para garantir que o docker configure os volumes para Zookeeper e Kafka, precisamos defini-los conforme mostrado na seção de volumes. Isso configura os volumes zookeeper_data e kafka_data. Ambos os volumes usam o driver local, o que significa que os dados são armazenados na máquina host.

Aí está! Um arquivo de configuração simples que permite criar um contêiner Kafka usando o docker em etapas simples.

Executando o Contêiner

Para garantir que o docker esteja em execução, podemos executar o contêiner do arquivo YAML com o seguinte comando:

$ sudo janela de encaixe compor

O comando deve localizar o arquivo de configuração YAML e executar o contêiner com os valores especificados:

Conclusão

Agora você aprendeu como configurar e executar o Apache Kafka a partir de um arquivo de configuração YAML de composição do docker.