Para terminar la serie de posts sobre Kafka os contaré los problemas que me he encontrado a la hora de preparar los entornos y a lo largo de los primeros meses de uso:

  1. ¿Qué es Apache Kafka?
  2. Cómo instalar y configurar el Oracle Java Development Kit.
  3. Cómo instalar y configurar en modo clúster el Apache Zookeeper.
  4. Cómo instalar y configurar en modo clúster el Apache Kafka.
  5. Operaciones habituales en Apache Zookeeper.
  6. Operaciones habituales en Apache Kafka.
  7. Cómo monitorizar Zookeeper desde el PRTG.
  8. Cómo monitorizar Apache Kafka con el PRTG.
  9. Mejoras de rendiemiento en Apache Kafka y valores óptimos de los sensores.
  10. Problemas frecuentes en la instalación, configuración y uso de un clúster Kafka.

Todos los ficheros de configuración de esta serie de posts estan publicados en gitlab.

Problemas de instalación

Los mayores problemas de instalación con los que he tenido que lidiar han sido básicamente  errores mios (cómo no) en la configuración de los ficheros tanto del kafka como del zookeeper. Un cambio en el nombre del host, comas en lugar de puntos y cosas por el estilo. Estos problemas son sencillos de detectar y solucionar, siempre que tengas el log a mano, y no configurar bien los permisos de la carpeta en la que se instala kafka es un error que puede hacer que no dispongas de logs, y sin los logs será difícil encontrar otros problemas. Además, como kafka sigue funcionando aún sin poder escribir los logs me costó darme cuenta de que no los tenía.

Con el zookeeper tuvimos más problemas al principio por la configuración que teníamos en el fichero /etc/hosts. A pesar de que configurábamos el zookeeper de forma correcta, contra los nombres de los equipos, zookeeper parece que usa el FQDN para su uso interno, a pesar de que en el fichero de configuración no se lo indicábamos. Si no por algún motivo no podíamos resolver el FQDN de alguno de los nodos el clúster no funcionaba. En esta entrada de StackOverflow se insinuaba que era una buena indea mantener el fichero hosts con todos los FQDN, pero en nuestro caso, y por el número de nodos nos pareció inviable, y lo solucionamos sencillamente con unos cambios en nuestro servidor de DNS.

Problemas de uso

Los únicos problemas de uso que hemos tenido han sido dos. El primero con la configuración de los servidores donde se aloja el zookeeper. Uno de los nodos del clúster tenía la hora en formato UTC + 1, cuando por defecto los tenemos todos siempre configurados en UTC. Al principio todo funcionaba correctamente pero con el tiempo empezamos a detectar errores en los logs del kafka (los ficheros de log de datos). Cambiando la zona horaria y reiniciando el clúster se solucionó.

El segundo problema fue debido a un error de programación nuestro. El uso que le damos a kafka es como cola de mensajes donde los consumers son diferentes Application Pools del IIS que se encuentran dentro de la granja de servidores de web service. Como cada pool de aplicaciones envía muchos eventos a kafka (tantos como peticiones recibe web service) no tenía sentido abrir una conexión nueva cada vez que quisiéramos enviar un mensaje, y por lo tanto, mantener el canal de comunicación abierto era importante, sobre todo por la latencia que tiene el obtener la información inicial del clúster en la conexión inicial al zookeeper. Pues a pesar de ello, y repito, por error nuestro, esto no se hacía así. El resultado es que el número de mensajes que éramos capaces de generar era ínfimo en comparación al número de mensajes que todo el mundo decía que era capaz de tragar (por ejemplo aquí). Cuando se reprogramó pudimos llegar sin problema a 1 millón de mensajes por segundo.

 

Con esto doy por concluída la serie de posts sobre Kafka. Cualquier duda  que os pueda resolver estaré encantado de intentar ayudaros.

 

Saludos

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s