Sobes.tech
Junior — Middle

¿Cómo se realiza el proceso de confirmación del procesamiento de mensajes en Kafka?

sobes.tech AI

Respuesta de la IA

En Apache Kafka, la confirmación del procesamiento de mensajes (reconocimiento) se realiza mediante el mecanismo de confirmación de desplazamiento (offset commit).

Proceso:

  1. El consumidor recibe un mensaje del tema.
  2. Después de procesar con éxito el mensaje, el consumidor registra (confirma) el desplazamiento (offset) de ese mensaje.
  3. Kafka almacena la información sobre el último desplazamiento confirmado para cada grupo de consumidores.

En Go, usando un cliente Kafka (por ejemplo, sarama o confluent-kafka-go), la confirmación puede ser automática o manual:

  • Confirmación automática — el cliente envía periódicamente información sobre el último offset procesado.
  • Confirmación manual — el desarrollador llama explícitamente al método commit después de procesar el mensaje, lo que proporciona mayor control y fiabilidad.

Ejemplo con sarama (confirmación manual):

consumer, _ := sarama.NewConsumerGroup(brokers, groupID, config)
// En el manejador de mensajes, después de procesar:
session.MarkMessage(message, "") // marca el mensaje como procesado
// Después de completar el procesamiento, se llama a Commit()