Después de haber levantado un clúster con Kafka en Docker, hay que configurar el cliente. La configuración en Kafka es bastante compleja.
- group.id -> string
Grupo de consumidores. Si queremos que varios consumidores se encarguen de procesar los mensajes que llegan a un topic de forma que podamos procesarlo más rápido, en paralelo, hemos de definir este parámetro.
Los mensajes se reparten uno por consumidor. Cada consumidor está siempre asociado a una partición
- bootstrap.servers -> string
Servidores a los que queremos conectarnos. Normalmente (puede variar según clientes) es un único texto con la lista separada por comas.
- enable.partition.eof
- session.timeout.ms -> int
- enable.auto.commit -> boolean
Si se hace auto commit tras el consumo del mensaje. Realmente por rendimiento, no es cada vez que se consume (se puede configurar también) sino cada cierto tiempo fijo o cada cierto número de mensajes consumidos. Parámetro crucial. Si no se hace el commit, al volver a conectarnos kafka no sabrá que hemos consumido el mensaje y volverá a enviarlo.
Si queremos leer los mensajes pero no consumirlos, hay que ponerlo a false.
- auto.offset.reset -> latest | smallest
- latest -> un consumidor que nunca haya hecho commit de su offset empezará consumiendo desde el final por lo que no recibirá mensajes existentes en el momento en que se conecte.
- earliest -> desde el principio de su commit