首页 > 解决方案 > 我可以在 Kafka 中压缩 KafkaStream 使用的中间主题(状态存储)吗

问题描述

使用有状态处理器时,状态也可以存储在 kafka 中。

例如,名称如下的主题: -repartition-x-changelog-x

我可以压缩这些主题,例如使用 gzip,KafkaStream 仍然可以使用它们吗?

标签: apache-kafka-streams

解决方案


正如 Mathias 所指出的,您可以通过compression.type在内部主题配置中设置主题配置来压缩消息。见https://kafka.apache.org/10/javadoc/org/apache/kafka/streams/state/StoreBuilder.html#withLoggingEnabled-java.util.Map-

或者,您也可以实现一个自定义 Serde 来进行压缩。

更喜欢前者,因为它只会在 Kafka 主题中被压缩,而不是在状态存储中。这避免了处理过程中不必要的压缩/解压缩。


推荐阅读