En aquest tema, aprendrem com gestionar els temes de Kafka, que són una part fonamental de l'arquitectura de Kafka. Els temes són els canals a través dels quals es transmeten els missatges entre productors i consumidors. La gestió adequada dels temes és crucial per assegurar el rendiment i la fiabilitat del sistema.

Continguts

Creació de Temes

Per crear un tema a Kafka, utilitzarem l'eina de línia de comandes kafka-topics.sh. Aquesta eina permet crear, llistar, descriure i eliminar temes.

Comandament per crear un tema

bin/kafka-topics.sh --create --topic <nom-del-tema> --bootstrap-server <servidor> --partitions <num-particions> --replication-factor <factor-replicació>

Exemple

bin/kafka-topics.sh --create --topic exemple-tema --bootstrap-server localhost:9092 --partitions 3 --replication-factor 1

Explicació

  • --create: Indica que volem crear un tema.
  • --topic: El nom del tema que volem crear.
  • --bootstrap-server: L'adreça del servidor Kafka.
  • --partitions: El nombre de particions que tindrà el tema.
  • --replication-factor: El factor de replicació del tema.

Llistat de Temes

Per llistar tots els temes existents en un clúster de Kafka, utilitzarem el següent comandament:

Comandament per llistar temes

bin/kafka-topics.sh --list --bootstrap-server <servidor>

Exemple

bin/kafka-topics.sh --list --bootstrap-server localhost:9092

Descripció de Temes

Per obtenir informació detallada sobre un tema específic, utilitzarem el següent comandament:

Comandament per descriure un tema

bin/kafka-topics.sh --describe --topic <nom-del-tema> --bootstrap-server <servidor>

Exemple

bin/kafka-topics.sh --describe --topic exemple-tema --bootstrap-server localhost:9092

Explicació

Aquest comandament proporciona informació sobre les particions, els líders de partició, els rèpliques i els ISR (in-sync replicas).

Eliminació de Temes

Per eliminar un tema, utilitzarem el següent comandament:

Comandament per eliminar un tema

bin/kafka-topics.sh --delete --topic <nom-del-tema> --bootstrap-server <servidor>

Exemple

bin/kafka-topics.sh --delete --topic exemple-tema --bootstrap-server localhost:9092

Nota

L'eliminació de temes ha d'estar habilitada en la configuració del servidor Kafka (delete.topic.enable=true).

Modificació de Temes

Per modificar les propietats d'un tema existent, com el nombre de particions, utilitzarem el següent comandament:

Comandament per modificar un tema

bin/kafka-topics.sh --alter --topic <nom-del-tema> --bootstrap-server <servidor> --partitions <nou-num-particions>

Exemple

bin/kafka-topics.sh --alter --topic exemple-tema --bootstrap-server localhost:9092 --partitions 5

Explicació

Aquest comandament permet augmentar el nombre de particions d'un tema. No es pot reduir el nombre de particions una vegada creat el tema.

Exercicis Pràctics

Exercici 1: Crear un tema

  1. Crea un tema anomenat test-tema amb 4 particions i un factor de replicació de 1.
  2. Llista tots els temes per verificar que test-tema ha estat creat correctament.

Solució

bin/kafka-topics.sh --create --topic test-tema --bootstrap-server localhost:9092 --partitions 4 --replication-factor 1
bin/kafka-topics.sh --list --bootstrap-server localhost:9092

Exercici 2: Descriure un tema

  1. Descriu el tema test-tema per obtenir informació detallada sobre les seves particions i rèpliques.

Solució

bin/kafka-topics.sh --describe --topic test-tema --bootstrap-server localhost:9092

Exercici 3: Modificar un tema

  1. Augmenta el nombre de particions del tema test-tema a 6.
  2. Descriu el tema test-tema per verificar que el nombre de particions ha estat actualitzat.

Solució

bin/kafka-topics.sh --alter --topic test-tema --bootstrap-server localhost:9092 --partitions 6
bin/kafka-topics.sh --describe --topic test-tema --bootstrap-server localhost:9092

Exercici 4: Eliminar un tema

  1. Elimina el tema test-tema.
  2. Llista tots els temes per verificar que test-tema ha estat eliminat correctament.

Solució

bin/kafka-topics.sh --delete --topic test-tema --bootstrap-server localhost:9092
bin/kafka-topics.sh --list --bootstrap-server localhost:9092

Conclusió

En aquesta secció, hem après com gestionar els temes de Kafka, incloent la creació, llistat, descripció, eliminació i modificació de temes. La gestió adequada dels temes és essencial per mantenir un clúster de Kafka eficient i fiable. A la següent secció, explorarem com monitoritzar el rendiment i l'estat del clúster de Kafka.

© Copyright 2024. Tots els drets reservats