¿Qué es Kafka?
Esta API asíncrona se implementa utilizando el protocolo Apache Kafka. Es una plataforma de sucesos de publicación/suscripción diseñada para ser tolerante a errores, proporcionando una plataforma de alto rendimiento y baja latencia para manejar los canales de información en tiempo real.
Kafka se ejecuta como un clúster de uno o más servidores (intermediarios de Kafka). La carga se equilibra en el clúster distribuyéndola entre los servidores.
Conceptos clave
Tema
Una corriente de mensajes se almacena en categorías llamadas temas. Los temas se representan como canales en un documento AsyncAPI. Cada tema contiene una o más particiones. Cada partición es una lista ordenada de mensajes. A cada uno de los mensajes de una partición se les asigna un número de aumento monotónico llamado el desplazamiento.
Mensaje/Registro
La unidad de datos en Kafka que consta de dos partes: cabeceras y valor. Las cabeceras se utilizan normalmente para datos sobre el mensaje y el valor es el cuerpo del mensaje.
Productor
Proceso que publica secuencias de mensajes a los temas de Kafka. Un productor puede publicar en uno o más temas y opcionalmente puede elegir la partición que almacena los datos.
Consumidor
Proceso que consume mensajes de temas de Kafka y procesa el canal de información de mensajes. Un consumidor puede consumir de uno o más temas o particiones.
Grupo de consumidores
Grupo con nombre de uno o más consumidores que consumen conjuntamente los mensajes de un conjunto de temas. Cada consumidor del grupo lee mensajes de particiones específicas a las que está asignado. Cada partición se asigna a un solo consumidor del grupo. La asignación está controlada por las propiedades de consumidor 'client.id' y 'group.id'.
Consumo desde esta API
Necesitará un cliente de Kafka para conectarse y suscribirse. Las bibliotecas de cliente de Kafka están disponibles para una variedad de lenguajes de programación y el código de ejemplo para cada canal es un punto de partida para utilizar un cliente Java Kafka para consumir sucesos utilizando un consumidor de Kafka.