Kafka-streams:将内部主题清理策略设置为删除不起作用

Kafka-streams: setting internal topics cleanup policy to delete doesn't work

我使用 kafka 流减少功能,它创建了一些状态存储更改日志 kafka 内部主题(如 app-KSTREAM-REDUCE-STATE-STORE-0000000002-changelog )。

我想设置保留字节并将清理策略更改为删除以防止存储已满。所以我在 kafka 流代码中设置了以下配置:

Properties props = new Properties();
props.put(StreamsConfig.TOPIC_PREFIX + TopicConfig.RETENTION_BYTES_CONFIG, Constants.INTERNAL_TOPICS_RETENTION_BYTES);
props.put(StreamsConfig.TOPIC_PREFIX + TopicConfig.CLEANUP_POLICY_CONFIG, TopicConfig.CLEANUP_POLICY_DELETE);
KafkaStreams streams = new KafkaStreams(builder.build(), props);

但是,当生成新主题时,保留配置应用于新生成的内部主题并且清理策略保持紧凑.

是否缺少任何步骤? (或者是否可以将内部主题清理策略设置为删除?)

我使用kafka版本1.0.0和kafka-streams版本1.0.0

感谢郭章在kafka mailing list中的回答:

The issue you described seems like an old bug that is resolved since 1.1.0 (as part of the fix in https://jira.apache.org/jira/browse/KAFKA-6150).

... You do not need to upgrade broker in order to use newer Streams library versions.

将 kafka-streams 版本升级到 1.1.0 解决了这个问题。