La confirmación de kafka0.9 no se puede completar debido al reequilibrio del grupo
1. Cuando se utiliza el nuevo cliente kafka0.9 para consumir mensajes,
org.apache.kafka.clients.consumer.CommitFailedException: la confirmación no se puede completar debido al reequilibrio del grupo.
El problema ocurre cuando el consumidor no envía un latido al coordinador (un nuevo rol después de kafka 0.9) durante un período de tiempo.
Enlace del problema
Instrucciones de optimización de parámetros
Si Kafka no recibe al menos un latido dentro del tiempo de espera de la sesión, activará un reequilibrio. Si se activa el reequilibrio, las confirmaciones fallarán. Esto es de esperarse. Entonces la pregunta es, ¿por qué no hay latidos del corazón?
Primero, estás realizando una confirmación manual. A partir de la versión 0.9, los latidos no ocurren en subprocesos separados. Entonces, el latido ocurre cuando haces consumer.poll() o consumer.commit(). Por lo tanto, si el tiempo de procesamiento excede el tiempo de espera de la sesión, es posible que falle el latido.
Existe un problema conocido en los consumidores de Kafka 0.9 que puede causar el problema que usted enfrenta.
https://issues.apache.org/jira/browse/KAFKA-3627
En cualquier caso, degradar su consumidor a 0.8 resolverá el problema. 8 resolverá el problema.
EDITAR: podrías intentar aumentar el tiempo de espera de la sesión a 5 minutos y ver si funciona.
Acerca de la configuración de Kafka
El servidor Kafka espera recibir al menos un latido dentro del tiempo de espera de la sesión. Es posible que se pierdan algunos latidos del corazón. Por lo tanto, el tiempo de latido no debe exceder 1/3 del tiempo de espera de la sesión. (Puedes consultar la documentación)