【发布时间】:2018-10-04 12:09:08
【问题描述】:
我有一个 Kafka 用例,我不需要在服务器上运行的某些主题的日志,一些主题发送 很多 消息,而另一些则不需要。
目前我看到的唯一“修复”是设置相当宽松的保留政策。
问题是我想保留服务器上其他一些主题的日志和持久信息,这对我来说可能更重要。
我有什么选择?
理想情况下,我想按主题丢弃日志和存储的消息。
【问题讨论】:
标签: java apache-kafka messaging
我有一个 Kafka 用例,我不需要在服务器上运行的某些主题的日志,一些主题发送 很多 消息,而另一些则不需要。
目前我看到的唯一“修复”是设置相当宽松的保留政策。
问题是我想保留服务器上其他一些主题的日志和持久信息,这对我来说可能更重要。
我有什么选择?
理想情况下,我想按主题丢弃日志和存储的消息。
【问题讨论】:
标签: java apache-kafka messaging
您可以设置每个主题的保留政策,是的。
这是一个使用kafka-topics的例子:
kafka-topics.sh --zookeeper localhost:2181 \
--alter \
--topic MyTopic \
--config retention.ms=1000
【讨论】:
可以按主题设置保留设置。您可以在创建时执行此操作,也可以在创建后更改主题配置。您可以在 Kafka's website 上找到完整的主题配置列表。
对于您不需要保留数据的主题,设置保留限制以频繁删除数据。
另一方面,对于您需要保留数据的主题,请设置保留限制,以将数据保留更长时间。
例如,在创建主题时设置主题配置(保留时间=24小时):
kafka-topics.sh --zookeeper <ZK> --create --topic --partitions 1 --replication-factor 1 --config retention.ms=86400000
更新现有主题:
kafka-configs.sh --zookeeper <ZK> --entity-type topics --entity-name <TOPIC> --alter --add-config retention.ms=86400000
【讨论】: