Skip to content

Latest commit

 

History

History
77 lines (55 loc) · 2.89 KB

Conceptos_kafka.md

File metadata and controls

77 lines (55 loc) · 2.89 KB

Guía Rápida de Kafka

A continuación, se describe una guía rápida de cómo trabajar con Kafka para definir un topic, lanzar un consumer y un producer.

Para poder incluir los comandos debemos abrir un terminal sobre el docker

  • Para abrir un terminal en el contenedor:

    docker exec -it docker-kafka1-1 bash

1. Definir un Topic

Para definir un topic en Kafka con una única partición, utiliza el siguiente comando:

kafka-topics --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic miTopic

A continuación podemos listar los topics que existen en el cluster

kafka-topics --list --bootstrap-server localhost:9092

Definir consumidor y productor

Podemos abrir dos terminales para sobre contenedor docker-kafka-1. En uno de ellos ejecutamos el consumer y en el otro el producer

  • El consumidor en uno de los terminales

    kafka-console-consumer --bootstrap-server localhost:9092 --topic mitopic
  • El productor en el otro

    kafka-console-producer --broker-list localhost:9092 --topic mitopic
  • Leer todos los mensajes y no solo los que se creen nuevos

    kafka-console-consumer --bootstrap-server localhost:9092 --topic topic-test --from-beginning
  • Borrado de topics

kafka-topics --bootstrap-server localhost:9092 --topic topic-test2 --create --partitions 3 --replication-factor 1
kafka-topics --bootstrap-server localhost:9092 --list
kafka-topics --bootstrap-server localhost:9092 --topic topic-test2 --delete
kafka-topics --bootstrap-server localhost:9092 --list
  • Enviando mensajes sin clave, se reparten por round robin por las particiones Los consumidores se pueden arrancar y parar, se rebalancea la asignación de particiones
kaftopics --bootstrap-server localhost:9092 --topic topic-no-key --create --partitions 2 --replication-factor 1
kafka-console-producer --broker-list localhost:9092 --topic topic-no-key
kafka-console-consumer --bootstrap-server localhost:9092 --topic topic-no-key --from-beginning --group "no-key"
  • Enviando mensajes con clave
kafka-topics --bootstrap-server localhost:9092 --topic topic-key --create --partitions 3 --replication-factor 1

kafka-console-producer --broker-list localhost:9092 --topic topic-key --property "parse.key= true" --property "key.separator=:"
  • verificar que los mensajes se enrutan a las particiones en función de la clave. Abrir cada consumer en un terminal de docker-kafka1 distinto.
kafka-console-consumer --bootstrap-server localhost:9092 --topic topic-key --from-beginning --partition 0 --property "print.key=true"
kafka-console-consumer --bootstrap-server localhost:9092 --topic topic-key --from-beginning --partition 1 --property "print.key=true"
kafka-console-consumer --bootstrap-server localhost:9092 --topic topic-key --from-beginning --partition 2 --property "print.key=true"