Kafka en Producción · Lección 14
¿Qué riesgo tiene usar 'commit automático' de offsets (enable.auto.commit=true) en un consumer, respecto a garantizar que un evento realmente se procesó correctamente antes de avanzar?
El offset podría confirmarse (avanzar) según un intervalo de tiempo fijo, incluso si el procesamiento real de ese evento específico falló o aún no había terminado, arriesgando perder ese evento sin haberlo procesado correctamente
El commit automático elimina por completo la posibilidad de que el consumer procese algún evento del topic
Solo representa un riesgo si el topic tiene exactamente una única partition en total
El commit manual es técnicamente imposible de implementar en Kafka bajo cualquier circunstancia
Kafka en Producción · Lección 14
Completa el código
Con commit manual, se confirma el offset después de terminar el
Revisa: se confirma el offset después de terminar realmente el procesamiento del evento.
Kafka en Producción · Lección 14
¿Por qué hacer commit manual del offset SOLO después de confirmar que el procesamiento del evento fue exitoso reduce el riesgo de perder ese evento si el consumer falla justo después de leerlo pero antes de procesarlo completamente?
Pista: si el consumer falla después de leer el evento pero antes de terminar de procesarlo, y el offset todavía no se confirmó manualmente, ese mismo evento se volvería a entregar en el siguiente intento, evitando perderlo silenciosamente como podría ocurrir con un commit automático que avanzó prematuramente según su propio temporizador.
✓
¡Lección completada!
Offsets — commit manual vs automático
0
XP ganado
3
Vidas restantes