Instalación de un clúster de Apache Kafka en Debian 12

watch 6m, 34s
views 2

08:51, 30.07.2026

Contenido del artículo
arrow

  • Guía rápida: Configuración de Apache Kafka en Debian 12
  • Principios básicos y elementos de la arquitectura de Kafka
  • Instalación de Apache Kafka en Debian 12
  • Instalar Java 8 o posterior en Debian 12
  • Descarga la última versión de Kafka
  • Descomprime el archivo binario de Kafka
  • Iniciar Kafka con el modo KRaft (KRaft)
  • Configurar KRaft para un clúster de Kafka
  • Modificar el directorio de registros
  • Genera un ID de clúster de Kafka
  • Convertir el directorio de registros de Kafka al formato KRaft
  • Ajustar el tamaño del montón de Kafka
  • Inicio del broker de Kafka
  • Iniciar el broker de Kafka en primer plano
  • Ejecutar el broker de Kafka como servicio de systemd
  • Creación de temas, envío y recepción de mensajes en Kafka
  • Crear un tema manualmente
  • Ver los temas disponibles de Kafka
  • Escribir (producir) y leer (consumir) mensajes en temas de Kafka
  • Eliminar temas de Kafka
  • Configuración de un clúster de Kafka de tres nodos
  • Gestión de clústeres de Kafka a través de la interfaz de usuario

Guía rápida: Configuración de Apache Kafka en Debian 12

Apache Kafka es una potente plataforma distribuida de transmisión de eventos diseñada para la distribución de mensajes con alto rendimiento y baja latencia.

La instalación de Kafka en Debian 12 requiere una configuración minuciosa para garantizar una transmisión de datos fiable y escalable.

Esta guía ofrece un tutorial paso a paso para instalar y configurar un clúster de Apache Kafka en Debian 12, destacando los pasos y configuraciones esenciales.

Principios básicos y elementos de la arquitectura de Kafka

La arquitectura de Kafka se basa en varios componentes fundamentales:

  • Broker: Kafka funciona como un clúster compuesto por uno o más servidores denominados «broker» que gestionan el almacenamiento y la distribución de mensajes.
  • Temas: Categorías con nombre a las que se envían los registros y de las que se leen.
  • Productores: Aplicaciones que envían registros a los temas de Kafka.
  • Consumidores: Aplicaciones que leen registros de los temas.
  • Particiones: Temas de Kafka divididos en secciones para una mejor distribución entre varios brokers.
  • Replicación: Cada partición se replica; una de ellas se encarga de las solicitudes de lectura y escritura, mientras que las demás replican los datos.
  • Streams: Una biblioteca de procesamiento de flujos para aplicaciones de streaming en tiempo real y microservicios.
  • ZooKeeper (opcional): Anteriormente utilizado para la gestión de metadatos, ahora sustituido por el modo Kafka Raft (KRaft) para una mejor autogestión.

Instalación de Apache Kafka en Debian 12

Instalar Java 8 o posterior en Debian 12

Apache Kafka requiere Java 8 o posterior para funcionar. Sigue estos pasos para instalar Java:

  1. Actualiza el índice de paquetes:
    sudo apt update
  2. Instala el paquete OpenJDK:
    sudo apt install -y openjdk-11-jdk
  3. Comprueba la instalación de Java:
    java -version

Descarga la última versión de Kafka

  1. Ve a página de descargas de Apache Kafka para descargar la última versión.
  2. Descarga Kafka utilizando wget o curl:
    wget https://downloads.apache.org/kafka/3.x.x/kafka_2.13-3.x.x.tgz

Descomprime el archivo binario de Kafka

Extrae el archivo descargado:

tar -xzf kafka_2.13-3.x.x.tgz

Mueve la carpeta extraída a /opt:

sudo mv kafka_2.13-3.x.x /opt/kafka

Iniciar Kafka con el modo KRaft (KRaft)

El modo KRaft elimina la necesidad de utilizar ZooKeeper, lo que simplifica la gestión del clúster de Kafka. Los archivos de configuración de KRaft se encuentran en /opt/kafka/config/kraft/.

Configurar KRaft para un clúster de Kafka

  1. Crea un nuevo archivo de configuración o edita el archivo server.properties existente:
    sudo nano /opt/kafka/config/kraft/server.properties
  2. Añade o modifica las siguientes propiedades:
    process.roles=broker,controller node.id=1 controller.quorum.voters=1@<broker-ip>:9093 listeners=PLAINTEXT://<broker-ip>:9092,CONTROLLER://<broker-ip>:9093 log.dirs=/var/lib/kafka/data

Modificar el directorio de registros

Asegúrate de que los registros de Kafka se almacenen en un directorio con suficiente espacio en disco; por defecto, los registros se almacenan en el directorio «/tmp/kraft-combined-logs».

Para garantizar que los registros se guarden en un directorio con espacio suficiente, actualice log.dirs en server.properties si es necesario:

log.dirs=/nueva/ruta/a/los/registros-de-kafka

Genera un ID de clúster de Kafka

El ID de clúster es lo que identifica a un clúster en el modo KRaft.

  1. Genera el ID de clúster:
    /opt/kafka/bin/kafka-storage.sh random-uuid
  2. Guarda el ID generado y formatea el directorio de registros:
    /opt/kafka/bin/kafka-storage.sh format -t <cluster-id> -c /opt/kafka/config/kraft/server.properties

Convertir el directorio de registros de Kafka al formato KRaft

Utilizando el ID de clúster que hemos generado en el paso anterior, podemos formatear los directorios de registros. Esto se hace para que cada broker de Kafka disponga de un directorio en el que guardar su registro (si hay varios nodos en el clúster).

  1. Utilizando el ID del clúster y el siguiente comando, formatee el directorio de registros:
    /opt/kafka/bin/kafka-storage.sh format -t <uuid> -c /opt/kafka/config/kraft/server.properties
  2. Sustituya el UUID URaeRekUQAyy8wLMNX2Q-w para que el comando quede así:
    /opt/kafka/bin/kafka-storage.sh format -t URaeRekUQAyy8wLMNX2Q-w \ -c /opt/kafka/config/kraft/server.properties

Como alternativa, puede utilizar el siguiente comando:

/opt/kafka/bin/kafka-storage.sh format \ -t /opt/kafka/bin/kafka-storage.sh random-uuid \ -c /opt/kafka/config/kraft/server.properties

Ajustar el tamaño del montón de Kafka

Para que Kafka tenga un rendimiento estable, puedes configurar el tamaño del montón en consecuencia; el tamaño del montón es, básicamente, la memoria que pertenece a la Máquina Virtual de Java (JVM) que ejecuta Kafka. Debe asegurarse de que el tamaño del montón sea suficiente para gestionar el volumen de tráfico que su servidor tendría que procesar.

Uno de los parámetros que utiliza memoria e influye en el tiempo que Kafka almacena los datos es log.retention.hours, cuyo valor predeterminado es de 7 días. También se pueden utilizar otros parámetros como log.retention.minutes, log.retention.ms, o log.retention.bytes también pueden utilizarse; estos parámetros pueden modificarse en el archivo /opt/kafka/config/kraft/server.properties.

Por ejemplo, para conservar los datos durante 8 horas, utiliza la siguiente línea:

log.retention.hours=8

A continuación, guarda el archivo y sal de él.

Inicio del broker de Kafka

Iniciar el broker de Kafka en primer plano

Ejecuta el broker de Kafka manualmente:

/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/kraft/server.properties

Ejecutar el broker de Kafka como servicio de systemd

  • Crear un archivo de servicio kafka.service:

sudo nano /etc/systemd/system/kafka.service

  • Añade la siguiente configuración:

[Unit] Description=Servicio de Apache Kafka After=network.target

[Service] Type=simple ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/kraft/server.properties Restart=on-failure User=kafka

[Install] WantedBy=multi-user.target

  • Recarga systemd e inicia Kafka:

sudo systemctl daemon-reload sudo systemctl start kafka sudo systemctl enable kafka

Creación de temas, envío y recepción de mensajes en Kafka

Tus productores pueden publicar mensajes en los temas de Kafka y los consumidores pueden suscribirse y leer registros de varios temas con la configuración adecuada.

Crear un tema manualmente

Para crear un tema de prueba en el servidor/broker de Kafka, utiliza:

/opt/kafka/bin/kafka-topics.sh --create --topic test-topic --bootstrap-server <ip-del-broker>:9092 --partitions 1 --replication-factor 1

Ver los temas disponibles de Kafka

Para ver los temas disponibles de Kafka, utiliza:

/opt/kafka/bin/kafka-topics.sh --list --bootstrap-server <ip-del-broker>:9092

Escribir (producir) y leer (consumir) mensajes en temas de Kafka

  • Para producir un mensaje, utiliza el siguiente comando:

/opt/kafka/bin/kafka-console-producer.sh --bootstrap-server localhost:9092 \ --topic kafka-topic-test

Cuando se ejecute, aparecerá el siguiente indicador: >

  • Escribe tu mensaje y pulsa INTRO:

>Hola, Kafka, este es mi mensaje

  • Para consumir el mensaje, utiliza:

/opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic kafka-topic-test

Eliminar temas de Kafka

Para eliminar un tema, utiliza:

/opt/kafka/bin/kafka-topics.sh --bootstrap-server localhost:9092 --delete --topic <nombre-del-tema>

Para eliminar todos los temas, utiliza:

for i in /opt/kafka/bin/kafka-topics.sh --list --bootstrap-server localhost:9092;do /opt/kafka/bin/kafka-topics.sh --bootstrap-server localhost:9092 --delete --topic $i; done

Configuración de un clúster de Kafka de tres nodos

Configure varios brokers creando archivos server.properties independientes para cada nodo con un node.id, listeners y ajustes de log únicos. Ajuste el parámetro `controller.quorum.voters` para incluir todos los nodos.

Gestión de clústeres de Kafka a través de la interfaz de usuario

Herramientas como Kafka Manager, Conduktor y Lenses.io proporcionan interfaces gráficas para supervisar y gestionar clústeres de Kafka. Según nuestra experiencia, estas herramientas facilitan la administración.

La configuración de Apache Kafka en Debian 12 con KRaft permite un flujo de mensajes robusto y descentralizado, así como canalizaciones de datos escalables, elementos esenciales para las aplicaciones modernas basadas en datos.

Compartir

¿Te ha resultado útil este artículo?

Ofertas populares de VPS

-10%

CPU
CPU
6 Epyc Cores
RAM
RAM
8 GB
Space
Space
100 GB NVMe
Bandwidth
Bandwidth
Unlimited
aiKVM-NVMe 8192 Linux

27.5 /mes

/mes

Facturado cada 12 meses

-15%

CPU
CPU
6 Xeon Cores
RAM
RAM
8 GB
Space
Space
100 GB SSD
Bandwidth
Bandwidth
80 Mbps
DDoS Protected SSD-wKVM 8192 Windows

101 /mes

/mes

Facturado cada 12 meses

-10%

CPU
CPU
3 Xeon Cores
RAM
RAM
1 GB
Space
Space
20 GB SSD
Bandwidth
Bandwidth
Unlimited
KVM-SSD 1024 Linux

6.6 /mes

/mes

Facturado cada 12 meses

-9.5%

CPU
CPU
8 Xeon Cores
RAM
RAM
32 GB
Space
Space
200 GB SSD
Bandwidth
Bandwidth
Unlimited
wKVM-SSD 32768 Windows

73.99 /mes

/mes

Facturado cada 12 meses

-10%

CPU
CPU
4 Xeon Cores
RAM
RAM
4 GB
Space
Space
100 GB SSD
Bandwidth
Bandwidth
Unlimited
wKVM-SSD 4096 Windows

18.65 /mes

/mes

Facturado cada 12 meses

-10%

CPU
CPU
6 Xeon Cores
RAM
RAM
16 GB
Space
Space
150 GB SSD
Bandwidth
Bandwidth
Unlimited
10Ge-KVM-SSD 16384 Linux

231 /mes

/mes

Facturado cada 12 meses

-10%

CPU
CPU
6 Xeon Cores
RAM
RAM
8 GB
Space
Space
100 GB SSD
Bandwidth
Bandwidth
Unlimited
KVM-SSD 8192 Linux

25.85 /mes

/mes

Facturado cada 12 meses

-10%

CPU
CPU
2 Xeon Cores
RAM
RAM
512 MB
Space
Space
10 GB SSD
Bandwidth
Bandwidth
Unlimited
KVM-SSD 512 Linux

5.2 /mes

/mes

Facturado cada 12 meses

-20.5%

CPU
CPU
6 Xeon Cores
RAM
RAM
8 GB
Space
Space
100 GB SSD
Bandwidth
Bandwidth
8 TB
KVM-SSD 8192 Metered Linux

57 /mes

/mes

Facturado cada 12 meses

-10%

CPU
CPU
4 Xeon Cores
RAM
RAM
4 GB
Space
Space
100 GB SSD
Bandwidth
Bandwidth
Unlimited
MT5 KVM 4096 Windows

19.99 /mes

/mes

Facturado cada 12 meses

Otros artículos sobre este tema

cookie

¿Acepta las cookies y la política de privacidad?

Utilizamos cookies para asegurar que damos la mejor experiencia en nuestro sitio web. Si continúa sin cambiar la configuración, asumiremos que acepta recibir todas las cookies del sitio web HostZealot.