Comunicación entre microservicios usando Kafka y eventos

Clase 5 de 24Curso de Introducción a los Microservicios

Resumen

La comunicación eficiente entre microservicios es fundamental en cualquier arquitectura moderna y dinámica. Kafka, una herramienta estándar en el sector tecnológico, se ha convertido en una opción robusta para lograr esta comunicación mediante eventos. Creado originalmente por LinkedIn en 2010 y posteriormente donado a la Apache Foundation, este software open source está disponible en prácticamente cualquier proveedor de servicios en la nube.

¿Qué papel juega Kafka en la comunicación de microservicios?

Kafka actúa como intermediario en la comunicación por eventos entre microservicios. En vez de recurrir a comunicación directa como HTTP, que puede ser compleja y pesada, Kafka permite que un servicio emita eventos que activan otros servicios. De esta forma, los microservicios se comunican indirectamente respondiendo a eventos específicos generados dentro del sistema.

¿Cómo se utiliza Kafka en un caso práctico?

Si consideramos un servicio como "AddMember", que puede requerir agregar adultos o niños según corresponda, Kafka facilitaría notablemente esta operación. "AddMember" únicamente enviaría un evento en la plataforma, el cual sería escuchado por otro microservicio especializado en procesar dicha información. Esto reduce considerablemente la complejidad del manejo directo de múltiples peticiones HTTP.

Ventajas de utilizar comunicación orientada a eventos

La comunicación orientada por eventos presenta varios beneficios importantes en una arquitectura basada en microservicios:

  • Reducción de complejidad en comparación con la comunicación basada en HTTP.
  • Facilidad para escalar y desencadenar servicios bajo demanda.
  • Mejor manejo de recursos y procesos asíncronos.

Con Kafka, es común gestionar múltiples eventos en cadena. Aunque alcanzar cifras elevadas puede parecer excesivo, es técnicamente viable y factible; por ejemplo, existen casos documentados en los cuales hasta doce microservicios han interactuado eficientemente bajo este modelo.

¿Cuáles son las otros métodos de comunicación entre microservicios?

Si bien Kafka sobresale, hay otros enfoques comunes:

  • Comunicación directa por HTTP, que aunque común, implica mayor dificultad y carga excesiva.
  • Uso de GRPC, un método estructurado en procedimientos, escalable pero menos popular que Kafka.
  • Comunicación orientada a eventos, impulsada por Kafka, la cual es actualmente la solución más adoptada en la industria.