es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Excepciones de *Offset* de Kafka

Las excepciones de Kafka NoOffsetForPartitionException y OffsetOutOfRangeException se lanzan cuando el desplazamiento de un conjunto de particiones es inválido (ya sea indefinido o fuera de rango), y no se ha configurado ninguna política de reinicio.

¿Puede describir los escenarios de ejecución que causan que se generen estas excepciones?

Gracias.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Sí, aquí hay algunos escenarios que pueden causar que se levanten las excepciones NoOffsetForPartitionException y OffsetOutOfRangeException:

    NoOffsetForPartitionException

    1. Grupo de consumidores sin offset inicial: Cuando se crea un nuevo grupo de consumidores y no se especifica un offset inicial, Kafka lanzará una NoOffsetForPartitionException cuando el grupo intente leer de una partición para la cual no hay un offset previamente registrado.
    2. Offset expirado: Si un grupo de consumidores no consume de una partición durante un tiempo especificado (es decir, el parámetro offsets.retention.minutes), el offset registrado se considera expirado. Cuando el grupo intente leer de la partición nuevamente, Kafka lanzará una NoOffsetForPartitionException porque el offset antiguo ya no es válido.
    3. Offset eliminado de Kafka: Si el offset registrado para una partición es eliminado (manual o automáticamente), Kafka lanzará una NoOffsetForPartitionException cuando el grupo intente leer de esa partición.

    OffsetOutOfRangeException

    1. El consumidor busca manualmente un offset inválido: Si un consumidor busca manualmente un offset que no es válido para una partición (es decir, antes del primer offset disponible o después del último offset registrado), Kafka lanzará una OffsetOutOfRangeException.
    2. Offset eliminado de Kafka: Si el offset registrado para una partición es eliminado (manual o automáticamente), y el consumidor intenta leer de esa partición con un offset antiguo, Kafka lanzará una OffsetOutOfRangeException porque el offset ya no es válido.

    En ambos casos, estas excepciones indican que no hay un offset válido disponible para la(s) partición(es) solicitada(s) y el consumidor debe tomar una acción apropiada, como restablecer al último offset, al primer offset o a un offset específico.

Comments are closed.