Sistemas de mensajería con Kafka

03-09-2015
 

Kafka es un gestor de mensajería publicador/subscriptor. Básicamente gestiona listas de mensajes(topics) donde ‘publicadores’ publican mensajes en las listas(topics) y los ‘consumidores’ se pueden subscribir a ellas.

Kafka Diagram

Kafka Diagram

Kafka es distribuido, replicado y participado, lo que lo hace apto para sistemas de alto rendimiento. No en vano lo utilizan empresas como LinkedIn Netflix, Twitter, Uber, PayPal o Salesforce. Las aplicaciones de este sistema son muy diversas: Analítica, Sistemas de mensajería como chats, muros de redes sociales, etc.

Kafka utiliza Zookeeper, proyecto para coordinar sistemas distribuidos. Si nos descargamos Kafka, encontraremos una versión de Zookeeper para testear. Para poner en marcha el servidor primero debemos arrancar el servidor de Zookeeper:

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

Y despues en otro terminal arrancamos Kafka:

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

Como podemos ver tenemos una carpeta ‘config’ donde se encuentra la configuración de cada aplicación(Con puertos, carpetas, etc.).

Para mostrar como funciona he desarrollado una pequeña aplicación Java dividida en dos partes: La primera, el método ‘publish’ que publica tres mensajes en la lista ‘lista1’. La segunda, el método ‘consumer’ que lee todos los mensajes disponibles en el servidor de la lista ‘lista1’.

Leave a Reply

© Albert Coronado Calzada