Repo en que que econtraremos lo comandos necesario para la formacion en apache kafka
sh bin/zookeeper-server-start.sh config/zookeeper.properties
sh bin/kafka-server-start.sh config/server.properties
bin/kafka-topics.sh --bootstrap-server localhost:9092 --create --topic topic-pedro --partitions 5 --replication-factor 1
En donde contamos con ciertos parámetros importantes
--bootstrap-server : Servido de kafka
--topic : Nombre del topic que se creara.
--partitions : Numero de particiones con los que contara el topic
--replication-factor: Numero de replicas por broker
-
Los replication-factor nos permite darle disponibilidad a nuestros mensajes, gracias a la generación de replicas de nuestro broker.
-
En este punto es clave mencionar que tendremos siempre un leader y el resto son Follower.
-
Por ultimo mencionar que los replicas son directamente proporcional a la cantidad de broker disponibles dentro del cluster.
-
Tener múltiples particiones permite tener más consumidores de mensajes funcionando de forma concurrente, esto se ve reflejado en el incremento del throughput(tasa de transferencia).
-
Mientras que el partitions, nos permite darle una mejor taza de lectura a nuestros mensajes puesto que da la posibilidad de tener mas consumidores.
-
Para incrementar la disponibilidad de la información, los topics se deben replicar en múltiples brokers, esto se define en el atributo replication-factor, el cual define el número de copias de la información.
-
Cada topic tendrá asignado un líder y seguidores.
-
Una replica actualizada se conocerá como (In-sync) y se mantiene actualizada con los cambios del líder. Si el líder falla una In-sync se puede convertir en líder. En un ambiente saludable todas las replicas deben encontrarse In-sync, es aceptable que no se encuentren de ese modo después de un fallo.
sh bin/kafka-topics.sh --bootstrap-server localhost:9092 --list
bin/kafka-topics.sh --bootstrap-server localhost:9092 --describe
o en el caso que necesites indicarle el topic
bin/kafka-topics.sh --bootstrap-server localhost:9092 --describe --topic topic-pedro
sh bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic-pedro
La observación de esta estrategia es que el momento de no estar ejecutándose el consumidor no pervivirá los mensajes con anterioridad a su ejecución, por esos mensajes se perdurar.
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic-pedro --from-beginning
En este caso el detalle es que se trae todo lo que tenga desde el inicio de esta cola, para tener presente.
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic-pedro --from-beginning --property print.key=true --property key.separator="-"
sh bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic topic-pedro