Apache Kafka es un servicio de transmisión de mensajes que permite a diferentes aplicaciones de un sistema distribuido comunicarse y compartir datos a través de mensajes.

Funciona como un sistema pub/sub en el que las aplicaciones productoras publican mensajes y los sistemas consumidores se suscriben a ellos.

Apache Kafka le permite adoptar una arquitectura poco acoplada entre las partes de su sistema que producen y consumen datos. Esto simplifica el diseño y la gestión del sistema. Kafka se apoya en Zookeeper para la gestión de metadatos y la sincronización de los distintos elementos del cluster.

Apache-Kafka

Características de Apache Kafka

ApacheKafka se ha hecho popular, entre otras razones, por ser

  • Escalable a través de clusters y particiones
  • Rápido capaz de realizar 2 millones de escrituras por segundo
  • Mantiene el orden de envío de los mensajes
  • Fiable gracias a su sistema de réplicas
  • Puede actualizarse sin tiempo de inactividad

Ahora, exploremos algunos de los casos de uso comunes de Kafka.

Casos de uso comunes de Apache Kafka

Kafka se utiliza a menudo en el procesamiento de big data, el registro y la agregación de eventos como clics de botones para análisis, y la combinación de registros de diferentes partes de un sistema en una ubicación central.

Ayuda a posibilitar la comunicación entre diferentes aplicaciones de un sistema y el procesamiento en tiempo real de datos procedentes de dispositivos IoT.

Ahora, veamos los pasos detallados para instalar Kafka en Windows y Linux.

Instalación de Kafka en Windows

En primer lugar, compruebe si Java está instalado en su máquina para instalar Apache Kafka en Windows. Abra el símbolo del sistema en modo Administrador e introduzca el comando

java --version

Si Java está instalado, debería obtener el número de versión del JDK actualmente instalado.

Si obtiene un mensaje de error diciendo que el comando no fue reconocido, Java no fue instalado, y necesita instalar Java. Para instalar Java, diríjase a Adoptium.net y haga clic en el botón de descarga.

adoptium.net_

Esto debería descargar el archivo instalador de Java. Cuando finalice la descarga, ejecute el instalador. Esto debería abrir el prompt de instalación.

java-installer

Pulse, Siguiente repetidamente para elegir las opciones por defecto. La instalación debería entonces comenzar. Verifique la instalación cerrando el símbolo del sistema, volviendo a abrir otro símbolo del sistema en modo Administrador e introduciendo el comando

java --version

Esta vez, debería obtener la versión del JDK que acaba de instalar. Una vez completada la instalación, podemos empezar a instalar Kafka.

Para instalar Kafka, vaya primero al sitio web de Kafka.

kafka-download

Haga clic en el enlace, y debería llevarle a la página de descargas. Descargue los últimos binarios disponibles.

kafka-downloads

Esto descargará los scripts y binarios de Kafka empaquetados en un archivo .tgz. Tras la descarga, deberá extraer los archivos del archivo .tgz. Para extraerlos, utilizaré WinZip, que puede descargarse del sitio web de WinZip.

Una vez extraído el archivo, muévalo a la carpeta C:\ de forma que la ruta del archivo pase a ser C:\kafka

A continuación, abra el símbolo del sistema en modo Administrador e inicie Zookeeper navegando primero hasta el directorio Kafka. Y ejecutando el archivo zookeeper-server-start.bat con zookeeper.properties como archivo de configuración

cd C:\kafka
bin\windows\zookeeper-server-start.bat config\zookeeper.properties

Con Zookeeper en ejecución, necesitamos añadir el archivo ejecutable wmic que utiliza Kafka en el PATH de nuestro sistema,

set PATH=C:\Windows\System32\wbem\;%PATH%;

Después de esto, inicie el servidor Apache Kafka abriendo otra sesión de símbolo del sistema en modo Administrador y navegando hasta la carpeta C :\kafka

cd C:\kafka

A continuación, inicie Kafka ejecutando

bin\windows\kafka-server-start.bat config\server.properties

Con esto, Kafka debería estar ejecutándose. Puede personalizar las propiedades del servidor, como dónde se escriben los registros en el archivo server . properties.

Instalación de Kafka en Linux

En primer lugar, asegúrese de que su sistema está al día actualizando todos los paquetes

sudo apt update && sudo apt upgrade

A continuación, compruebe si Java está instalado en su máquina ejecutando

java --version

Si java está instalado, verá el número de versión. Sin embargo, si no lo está, puede instalarlo utilizando apt.

sudo apt install default-jdk

Después de esto, podemos instalar Apache Kafka descargando los binarios del sitio web.

kafka-downloads

Abra su terminal y navegue hasta la carpeta donde se guardó la descarga. En mi caso, tengo que navegar a la carpeta Descargas.

cd Descargas

Una vez en la carpeta de descargas, extraiga los archivos descargados utilizando tar:

tar -xvzf kafka_2.13-3.3.1.tgz

Navegue hasta la carpeta extraída

cd kafka_2.13-3.3.1.tgz

Enumere los directorios y archivos.

Una vez en la carpeta, inicie un servidor Zookeeper ejecutando el script zookeeper-server-start.sh situado en el directorio bin de la carpeta extraída.

El script requerirá un archivo de configuración de Zookeeper. El archivo por defecto se llama zookeeper. properties y se encuentra en el subdirectorio config.

Así que para iniciar el servidor, utilice el comando

bin/zookeeper-server-start.sh config/zookeeper.properties

Con Zookeeper en marcha, podemos iniciar el servidor Apache Kafka. El script kafka-server-start.sh también se encuentra en el directorio bin. El comando también espera un archivo de configuración. El predeterminado es server.properties almacenado en el archivo config.

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

Esto debería poner en marcha Apache Kafka. Dentro del directorio bin, encontrará muchos scripts para hacer cosas como crear temas, gestionar productores y gestionar consumidores. También puede personalizar las propiedades del servidor en el archivo server.properties.

Palabras finales

En esta guía hemos repasado cómo instalar Java y Apache Kafka. Aunque puede instalar y gestionar clústeres de Kafka manualmente, también puede utilizar opciones gestionadas como Amazon Web Services y Confluent.

A continuación, puede aprender el procesamiento de datos con Kafka y Spark.