Quick Start
¿Cómo levantar kafka en entorno local?¶
La manera más sencilla de levantar un cluster de kafka es con docker. Puede descargar Docker desde https://www.docker.com/
- Cree un archivo
docker-compose.yml
-
Agregue las siguientes lineas.
version: '2' services: zookeeper: image: strimzi/kafka:0.20.1-kafka-2.6.0 command: [ "sh", "-c", "bin/zookeeper-server-start.sh config/zookeeper.properties" ] ports: - "2181:2181" environment: LOG_DIR: /tmp/logs kafka: image: strimzi/kafka:0.20.1-kafka-2.6.0 command: [ "sh", "-c", "bin/kafka-server-start.sh config/server.properties --override listeners=$${KAFKA_LISTENERS} --override advertised.listeners=$${KAFKA_ADVERTISED_LISTENERS} --override zookeeper.connect=$${KAFKA_ZOOKEEPER_CONNECT} --override inter.broker.listener.name=$${KAFKA_INTER_BROKER_LISTENER_NAME} --override listener.security.protocol.map=$${KAFKA_LISTENER_SECURITY_PROTOCOL_MAP}" ] depends_on: - zookeeper ports: - "9092:9092" - "9094:9094" environment: LOG_DIR: "/tmp/logs" KAFKA_ADVERTISED_HOST_NAME: localhost KAFKA_LISTENERS: "INTERNAL://:29092,EXTERNAL://:9092" KAFKA_ADVERTISED_LISTENERS: "INTERNAL://kafka:29092,EXTERNAL://localhost:9092" KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: "INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT" KAFKA_INTER_BROKER_LISTENER_NAME: "INTERNAL" KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 KAFKA_CREATE_TOPICS: "storage-topic:1:1:compact,global-id-topic:1:1:compact,input-topic:1:1:compact,logx-topic:1:1:compact,dbx-topic:1:1:compact" kafdrop: image: obsidiandynamics/kafdrop restart: "no" ports: - "9000:9000" environment: KAFKA_BROKERCONNECT: kafka:29092 JVM_OPTS: "-Xms16M -Xmx48M -Xss180K -XX:-TieredCompilation -XX:+UseStringDeduplication -noverify" depends_on: - "kafka" registry: image: apicurio/apicurio-registry-mem ports: - "8081:8080" environment: KAFKA_BOOTSTRAP_SERVERS: localhost:9092 APPLICATION_ID: registry_id APPLICATION_SERVER: localhost:9000
-
En una terminal, posicionese dentro de la carpeta que contiene el compose y corra el siguiente comando
docker-compose up
De esta manera ya tenemos corriendo kafka entre otras aplicaciones en nuestro local.
Configuración¶
kafka se encuentra escuchando en http://localhost:9092
Podemos conectarnos a kafka a través de Kafdrop que viene configurado en el compose. Para esto entramos en: http://localhost:9000/ dock
Podemos jugar un poco más con el contenedor de kafka.
Vamos a crear un topic para validar que este funcionando correctamente, para eso ejecutamos los siguientes comandos en CLI.
$ docker exec -it {CONTAINER_ID} bash
$ cd /opt/kafka/bin
$ ./kafka-topics.sh --bootstrap-server localhost:9092 \
--topic test-documentation \
--partitions 3 \
--replication-factor 1 \
--create