Consumidor atrapado en reingresar

He leído otros hilos y he solucionado el problema utilizando una nueva ID de grupo, sin embargo, me gustaría entender qué podría causar esto.

Tengo un tema con 16 particiones, configuré session.timeout.ms = 30000 y max.poll.interval.ms = 30000000.

Ejecuto mi programa, y ctrl + c, para que no se cierre correctamente. Después de que supongo, 16 veces, me quedo atrapado en este problema de reincorporación. session.timeout.ms es el tiempo de espera de los latidos del corazón, por lo que después de 30 segundos debería patear a mi consumidor correctamente y mis particiones deberían "liberarse" ¿verdad? ¿O solo está escuchando mi max.poll.interval.ms?

EDITAR: Todavía recibo este error de forma intermitente, y cuando sucede tengo que reiniciar a todos mis consumidores. Esto sucede incluso cuando mis consumidores estaban funcionando bien y luego comienzan a atascarse para volver a unirse (no se agregaron / eliminaron consumidores). Aquí hay un registro de errores de cuando intento conectarme con un nuevo consumidor cuando está atascado en ese estado:

https://pastebin.com/AXJeSHkp

2017-06-29 17:28:16,215 DEBUG [AbstractCoordinator] - [scheduler-1] - Sending JoinGroup ((type: JoinGroupRequest, groupId=ingestion-matching-kafka-consumer-group-dev1, sessionTimeout=30000, rebalanceTimeout=43200000, memberId=, protocolType=consumer, groupProtocols=org.apache.kafka.common.requests.JoinGroupRequest$ProtocolMetadata@b45e5583)) to coordinator kafka04-prod01.messagehub.services.us-south.bluemix.net:9093 (id: 2147483644 rack: null)

2017-06-29 17:37:21,261 DEBUG [NetworkClient] - [scheduler-1] - Node 2147483644 disconnected.
2017-06-29 17:37:21,263 DEBUG [ConsumerNetworkClient] - [scheduler-1] - Cancelled JOIN_GROUP request {api_key=11,api_version=1,correlation_id=19,client_id=ingestion-matching-kafka-consumer-dev1} with correlation id 19 due to node 2147483644 being disconnected

Esos son los primeros y últimos mensajes que creo son relevantes. Estos son los tiempos de espera relevantes que he establecido:

session.timeout.ms=30000
max.poll.interval.ms=43200000    
request.timeout.ms=43205000 # the docs said to keep this higher than max.poll.interval.ms
enable.auto.commit=false

¿Debo configurar heartbeat.interval.ms también? ¿Es este el intervalo en que el consumidor envía automáticamente los latidos al intermediario en algún hilo de fondo (he leído los documentos pero por alguna razón no puedo entenderlo)?

Respuestas a la pregunta(1)

Su respuesta a la pregunta