¿Cómo fluían los datos a través de Kafka? ¿Cómo llegaban los eventos?
sobes.tech AI
Respuesta de la IA
En Kafka, los datos se transmiten en forma de eventos (mensajes), que se publican en temas. Cada tema se divide en particiones, y los eventos dentro de las particiones están ordenados por desplazamientos (offset). El productor envía mensajes a un tema específico, y los consumidores se suscriben a los temas y leen los eventos en secuencia, siguiendo los desplazamientos.
Los eventos llegan a los consumidores mediante un modelo de extracción (pull): los consumidores solicitan nuevos mensajes indicando el desplazamiento desde el cual desean leer. Esto les permite controlar qué eventos ya han sido procesados y, si es necesario, volver a leer los datos.
Ejemplo en Go usando la biblioteca sarama:
consumer, err := sarama.NewConsumer(brokers, nil)
if err != nil {
panic(err)
}
partitionConsumer, err := consumer.ConsumePartition("topic", 0, sarama.OffsetNewest)
if err != nil {
panic(err)
}
for msg := range partitionConsumer.Messages() {
fmt.Printf("Mensaje recibido: %s\n", string(msg.Value))
}
De esta manera, el flujo de datos a través de Kafka está organizado como una secuencia de mensajes en los temas, y los eventos llegan a los consumidores bajo demanda, con control de la posición de lectura.