Kafka Streams:RocksDB TTL

时间:2018-06-27 20:19:35

标签: apache-kafka apache-kafka-streams

我了解默认TTL设置为无穷大(非正数)。但是,如果我们需要将数据保留在存储中最多2天,我们可以使用RocksDBConfigSetter接口实现(即options.setWalTtlSeconds(172800))进行覆盖吗?还是会与Kafka Streams内部构件冲突?

参考: https://docs.confluent.io/current/streams/developer-guide/config-streams.html#streams-developer-guide-rocksdb-config

1 个答案:

答案 0 :(得分:0)

目前无法实现。由于各种技术原因,Kafka Streams以硬编码方式禁用了RocksDB的TTL功能。也有一张票:https://issues.apache.org/jira/browse/KAFKA-4212

要知道,您可以在2天后使用窗口存储来使旧记录过期。即,您使用stream.groupByKey().windowedBy(...).reduce(...)进行1 {ms}的TimeWindow运算,然后执行“虚拟”操作,以减少密钥返回值。