数据存储的最大时间超过这个时间会根据log.cleanup.policy设置的策略处理数据,也就是消费端能够多久去消费数据
log.retention.bytes和log.retention.hours任意一个达到要求,都会执行删除,会被topic创建时的指定参数覆盖。
在server.properties里设置log.retention.hours=1
启动Kafka后,新建一个终端,发送helloworld1
[hadoop@Slave1 kafka]$ bin/kafka-topics.sh --create --topic timetest --replication-factor 1 --partitions 1 --zookeeper Slave1:2181
Created topic "timetest".
[hadoop@Slave1 kafka]$ bin/kafka-console-producer.sh --broker-list slave1:9092 --sync --topic timetest
[2015-12-06 23:42:09,372] WARN Property topic is not valid (kafka.utils.VerifiableProperties)
helloworld1
打开一个终端,用于接收数据
<span style="font-size:18px;">[hadoop@Slave1 kafka]$ bin/kafka-console-consumer.sh --zookeeper Slave1:2181 --topic timetest --from-beginning
helloworld1
</span>一个小时后,打开另一个终端,用于接收数据
<span style="font-size:18px;">[hadoop@Slave1 kafka]$ bin/kafka-console-consumer.sh --zookeeper Slave1:2181 --topic timetest --from-beginning
</span>一个小时后打开的终端,已经收不到helloworld1

本文介绍了Kafka中log.retention.hours参数的含义,该参数用于设定消息存储的最大时间,超过这个时间将根据log.cleanup.policy策略删除数据。当log.retention.bytes或log.retention.hours任何一个条件满足时,数据会被删除。通过示例演示了在server.properties中设置log.retention.hours=1,并展示了发送与接收数据的过程。
1183

被折叠的 条评论
为什么被折叠?



