O objetivo desse post é explicar a configuração do Apache Kafka no ambiente Docker.
O Apache Kafka é um serviço de mensageria e o Kafdrop é o projeto web que visualiza informações de brokers Kafka dos tópicos existentes, consumers e mensagens encaminhadas no tópico.
Pré-requisto: Ter o Docker e Docker Compose instalado.
$ mkdir $HOME/ambiente-kafka-docker && cd $HOME/ambiente-kafka-docker
Crie o arquivo docker-compose.yml conforme o conteúdo a seguir:
Segue o conteúdo do arquivo docker-compose.yml para o ambiente Apache Kafka + ZooKeeper + Kafdrop).
O serviço zookeeper é criado com a imagem confluentinc/cp-zookeeper, que é a instância do ZooKeeper.
O serviço Kafka é criado com a imagem confluentinc/cp-kafka, que é a instância do Apache Kafka, utiliza a porta 9092 externo e internamente para o network broker-kafka na porta 29092. Esse container também é uma instância do ZooKeeper em depends_on.
O serviço Kafdrop, container que possibilitará o acessa via browser à interface de gerenciamento do Kafdrop na porta 19000. A variável de ambiente KAFKA_BROKERCONNECT foi configurada para se comunicar com o container kafka (depends_on) internamente na porta 29092.
docker-compose.yml
version: '3'
services:
zookeeper:
image: confluentinc/cp-zookeeper:latest
networks:
- broker-kafka
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
kafka:
image: confluentinc/cp-kafka:latest
networks:
- broker-kafka
depends_on:
- zookeeper
ports:
- 9092:9092
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:29092,PLAINTEXT_HOST://localhost:9092
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
kafdrop:
image: obsidiandynamics/kafdrop:latest
networks:
- broker-kafka
depends_on:
- kafka
ports:
- 19000:9000
environment:
KAFKA_BROKERCONNECT: kafka:29092
networks:
broker-kafka:
driver: bridge
Executar o build na raiz do diretório ambiente-kafka-docker
OBS: Antes de executar, verificar se as portas 9092,290092 e 19000 esteja livres no HOST.
$ docker-compose up -d
Verifique o status se está tudo OK, com o comando $ docker ps
Acesse no browser http://localhost:19000 para visualizar o Kafdrop, gerenciamento gráfico do Kafka.
Feito!
Nenhum comentário:
Postar um comentário