每个主题的日志保留字节不与kafka一起使用

时间:2016-08-23 09:11:47

标签: apache-kafka

我尝试使用以下命令

设置每个主题的log.retention.bytes

bin/kafka-topics.sh --zookeeper localhost:2181 --alter --topic app.test.client --config retention.bytes=10485760

通过执行

验证配置设置
bin/kafka-topics.sh --zookeeper localhost:2181 --describe --topic 
app.test.client 
Topic:app.test.client   PartitionCount:3     ReplicationFactor:2     Configs:retention.bytes=10485760
    Topic: app.test.client  Partition: 0    Leader: 2       Replicas: 2,1   Isr: 2,1
    Topic: app.test.client  Partition: 1    Leader: 0       Replicas: 0,2   Isr: 0,2
    Topic: app.test.client  Partition: 2    Leader: 1       Replicas: 1,0   Isr: 1,0

我已将保留字节设置为10MB - > 10485760.但是我的日志文件在10MB之后仍在增长。

$du -hs /mnt/kafka/logs/*
128M    /mnt/kafka/logs/app.test.client-1
128M    /mnt/kafka/logs/app.test.client-2

版  卡夫卡 - 0.8.2.1

如何根据主题正确设置此设置?

2 个答案:

答案 0 :(得分:2)

我认为log.retention.bytes并没有对主题/分区大小施加硬限制,而是向Kafka发出信号,要求删除高于您设置此值的最旧段文件财产到。

答案 1 :(得分:0)

Kafka保留在段级别进行。意思是,当Kafka超出保留边界(时间或大小)时,它将寻找要删除的段,以便返回到保留边界。在retention.bytes小于segment.bytes的情况下,您可能会遇到这样的情况,其中只是一个段,这也是当前使用的段,因此删除过程可能无法完全按预期工作。

尝试将segment.bytes设置为小于retention.bytes的值。