Configuración en Kafka

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.

Campos

  • 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