Aprender los conceptos de Apache Kafka
Apache Kafka es una plataforma de streaming distribuida utilizada por muchas empresas para numerosas cargas de trabajo por lotes, así como para la integración de datos en tiempo real y los casos de uso de streaming de datos.
Diagrama de arquitectura de

La siguiente lista define algunos conceptos de Apache Kafka:
Intermediarios
Apache Kafka es un sistema de mensajería distribuida. Un clúster de Kafka está formado por un conjunto de intermediarios. Un clúster tiene un mínimo de tres intermediarios.

Mensajes
Un mensaje es una unidad de datos en Kafka. Cada mensaje está representado en forma de registro, que consta de dos partes: clave y valor. La clave se utiliza habitualmente para los datos sobre el mensaje y el valor es el cuerpo del mensaje. Kafka utiliza los términos registro y mensaje de forma intercambiable.
Temas y particiones
Cada tema es una secuencia de mensajes con nombre. Un tema está formado por una o más particiones. Los mensajes de una partición están ordenados por un número que se denomina desplazamiento. Con múltiples particiones distribuidas por los brokers, aumenta la escalabilidad de un tema.
Si un tema tiene más de una partición, permite a los datos alimentarse en paralelo para aumentar el rendimiento distribuyendo las particiones en el clúster. El número de particiones también influye en el equilibrio de carga de trabajo entre los consumidores.
Para obtener más información, consulte Liderazgo de particiones.

Réplica
Para mejorar la disponibilidad, cada tema se puede replicar en varios intermediarios. Para cada partición, uno de los intermediarios es el líder, y los otros intermediarios son los seguidores.
Los trabajos de réplica de los seguidores que captan repetidamente mensajes del líder.

Réplicas en sincronización
Una réplica de seguidor que se mantiene al día con el líder de la partición está en sincronización. Cualquier seguidor con una réplica en sincronización puede convertirse en el líder sin perder ningún mensaje.
Si el líder de la partición falla, se elige a otro líder entre los seguidores. Todas las réplicas deben estar normalmente sincronizadas. Es aceptable que una réplica no se sincronice temporalmente mientras se está recuperando después de una anomalía.

Productores
Un productor es una aplicación cliente que publica mensajes en uno o más temas. Un productor puede publicar en uno o más temas y puede elegir opcionalmente la partición que almacena los datos.
También puede configurar su productor para priorizar la velocidad o la fiabilidad eligiendo el nivel de acuse de recibo que recibe el productor para los mensajes que publica.
Para obtener más información, consulte Generación de mensajes.

Consumidores
Un consumidor es una aplicación cliente que lee mensajes de uno o más temas y los procesa. La diferencia entre la posición actual de un consumidor y el mensaje más reciente sobre una partición se conoce como el retraso de desplazamiento.
Si el retraso se incrementa con el tiempo, es señal de que el consumidor no es capaz de mantenerse al día. A corto plazo, esto no es un problema, pero eventualmente el consumidor puede perder mensajes si se supera el periodo de retención.
Para obtener más información, consulte Consumo de mensajes.

Grupos de consumidores
Un grupo de consumidores contiene uno o más consumidores que trabajan juntos para procesar los mensajes de un tema. Los mensajes de una sola partición son procesados por un consumidor en cada grupo.
En cualquier momento, cada partición se asigna a un solo consumidor en el grupo. Esta asignación garantiza que los mensajes de cada partición se procesen en orden.
Si en grupo existen más particiones que consumidores, algunos consumidores tienen varias particiones. Si existen más consumidores que particiones, algunos consumidores no tienen particiones.

Más información
Para obtener más información, consulte la documentación deApache Kafka.