不要坚持主题卡夫卡

时间:2018-10-04 12:09:09

标签: java apache-kafka messaging

我有一个用于Kafka的用例,其中我不需要服务器上正在运行的某些主题的日志,一些主题发送了很多消息,而其他则没有那么多。

目前,我看到的唯一“解决方案”是设置一个宽松的保留政策。

我想保留服务器上其他一些主题的日志和持久性信息,这对我来说可能更重要。

我有什么选择?

理想情况下,我想按主题丢弃日志和存储的消息。

2 个答案:

答案 0 :(得分:1)

您可以设置每个主题的保留策略,可以。

下面是使用kafka-topics的示例:

kafka-topics.sh --zookeeper localhost:2181 \
                --alter \
                --topic MyTopic \
                --config retention.ms=1000

答案 1 :(得分:1)

可以按主题设置保留设置。您可以在创建时执行此操作,也可以在创建后更改主题配置。您可以在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