Sobes.tech
Senior

¿Qué son las garantías de entrega en Kafka?

sobes.tech AI

Respuesta de la IA

Las garantías de entrega en Kafka describen cómo exactamente los mensajes se entregan desde el productor al broker y del broker al consumidor. Los niveles principales de garantía:

  1. At most once (como máximo una vez) — el mensaje puede perderse, pero no se duplicará. Se usa cuando la velocidad es importante y la pérdida de datos es aceptable.

  2. At least once (al menos una vez) — el mensaje se entrega garantizadamente, pero puede duplicarse. Este es el modo de operación estándar de Kafka.

  3. Exactly once (exactamente una vez) — el mensaje se entrega y procesa exactamente una vez, sin duplicados. En Kafka se logra mediante productores idempotentes y transacciones.

Para implementar exactamente una vez en los clientes de Kafka en Go, es necesario usar soporte para idempotencia y transacciones, si la biblioteca lo permite.

Ejemplo de configuración de un productor con idempotencia (pseudocódigo):

producer, _ := kafka.NewProducer(&kafka.ConfigMap{
    "bootstrap.servers": "localhost",
    "enable.idempotence": true, // garantiza exactly-once
})