apache-kafka - 卡夫卡流 : RocksDB TTL

标签 apache-kafka apache-kafka-streams

我知道默认 TTL 设置为无穷大(非正值)。但是,如果我们需要在存储中保留数据最多 2 天,我们是否可以使用 RocksDBConfigSetter 接口(interface)实现来覆盖,即 options.setWalTtlSeconds(172800)?或者它会与 Kafka 流内部结构冲突吗?

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

最佳答案

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

目前,您可以使用窗口存储在 2 天后使旧记录过期。即,您使用 1ms 的 TimeWindow 和“虚拟”减少了只需返回键的最新值。

关于apache-kafka - 卡夫卡流 : RocksDB TTL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51070790/

相关文章:

java - 获取队列中的所有kafka消息并停止在java中流式传输

Java 8 流和传入数据 (Kafka)

java - kafka 获取主题的分区数

java - 重新分区后,Kafka 流不使用 serde

java - 卡夫卡流 : Proper way to exit on error

apache-kafka - 如何为 Kafka 主题设置 cleanup.policy 'delete' 和 'compact'?

java - 跨 Kafka 分区对消息进行排序并将其放入另一个 Kafka 主题中

apache-kafka - 如何流式传输到全局 Kafka 表

java - Kafka 支持 java 10 还是 java 11?

apache-kafka - Kafka Streams - Streams App 中存储在内存和磁盘中的内容