apache-kafka - quickstart - kafka node js
cambiando el período de retención kafka durante el tiempo de ejecución (4)
La clave de configuración correcta es retention.ms
$ bin/kafka-topics.sh --zookeeper zk.prod.yoursite.com --alter --topic as-access --config retention.ms=86400000
Updated config for topic "my-topic".
Con Kafka 0.8.1.1, ¿cómo cambio el tiempo de retención del registro mientras se está ejecutando? La documentation dice que la propiedad es log.retention.hours
, pero intentar cambiarla usando kafka-topics.sh
devuelve este error
$ bin/kafka-topics.sh --zookeeper zk.yoursite.com --alter --topic as-access --config topic.log.retention.hours=24
Error while executing topic command requirement failed: Unknown configuration "topic.log.retention.hours".
java.lang.IllegalArgumentException: requirement failed: Unknown configuration "topic.log.retention.hours".
at scala.Predef$.require(Predef.scala:145)
at kafka.log.LogConfig$$anonfun$validateNames$1.apply(LogConfig.scala:138)
at kafka.log.LogConfig$$anonfun$validateNames$1.apply(LogConfig.scala:137)
at scala.collection.Iterator$class.foreach(Iterator.scala:631)
at scala.collection.JavaConversions$JEnumerationWrapper.foreach(JavaConversions.scala:479)
at kafka.log.LogConfig$.validateNames(LogConfig.scala:137)
at kafka.log.LogConfig$.validate(LogConfig.scala:145)
at kafka.admin.TopicCommand$.parseTopicConfigsToBeAdded(TopicCommand.scala:171)
at kafka.admin.TopicCommand$$anonfun$alterTopic$1.apply(TopicCommand.scala:95)
at kafka.admin.TopicCommand$$anonfun$alterTopic$1.apply(TopicCommand.scala:93)
at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:57)
at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:43)
at kafka.admin.TopicCommand$.alterTopic(TopicCommand.scala:93)
at kafka.admin.TopicCommand$.main(TopicCommand.scala:52)
at kafka.admin.TopicCommand.main(TopicCommand.scala)
La siguiente es la forma correcta de alterar la configuración del tema a partir de Kafka 0.10.2.0:
bin/kafka-configs.sh --zookeeper <zk_host> --alter --entity-type topics --entity-name test_topic --add-config retention.ms=86400000
Las operaciones de modificación de configuración de tema han quedado obsoletas para bin/kafka-topics.sh
.
WARNING: Altering topic configuration from this script has been deprecated and may be removed in future releases.
Going forward, please use kafka-configs.sh for this functionality`
kafka confluent V4.0.0
y usé este comando en kafka confluent V4.0.0
y apache kafka V 1.0.0 and 1.0.1
/opt/kafka/confluent-4.0.0/bin/kafka-configs --zookeeper XX.XX.XX.XX: 2181 --entornos de tipo de entidad --entity-name test --alter --add-config retention. ms = 55000
test
es el nombre tipico.
Creo que funciona bien en otras versiones también
log.retention.hours
es una propiedad de un intermediario que se utiliza como valor predeterminado cuando se crea un tema. Cuando cambie las configuraciones del tema que se está ejecutando actualmente usando kafka-topics.sh
, debe especificar una propiedad de nivel de tema.
Una propiedad de nivel de tema para el tiempo de retención de registro es retention.ms
.
Desde la configuración del nivel de tema en la documentación de Kafka 0.8.1:
- Propiedad : retention.ms
- Por defecto : 7 días
- Propiedad predeterminada del servidor : log.retention.minutes
- Descripción : esta configuración controla el tiempo máximo que conservaremos un registro antes de descartar segmentos de registro antiguos para liberar espacio si estamos utilizando la política de retención "eliminar". Esto representa un SLA sobre qué tan pronto los consumidores deben leer sus datos.
Entonces el comando correcto es
$ bin/kafka-topics.sh --zookeeper zk.yoursite.com --alter --topic as-access --config retention.ms=86400000
Puede verificar si la configuración se aplica correctamente con el siguiente comando.
$ bin/kafka-topics.sh --describe --zookeeper zk.yoursite.com --topic as-access
Entonces verás algo como a continuación.
Topic:as-access PartitionCount:3 ReplicationFactor:3 Configs:retention.ms=86400000