使用spring kafka时如何压缩生产者中的数据

pde*_*eva 3 java spring kotlin apache-kafka spring-kafka

我目前正在使用 spring-kafka 发送数据,如下所示:

val json = objectWriter.writeValueAsString(obj)
kafkaTemplate.send(topic, json)
Run Code Online (Sandbox Code Playgroud)

我如何告诉 KafkaTemplate 在发送之前使用 snappy 压缩 json?

Dea*_*ool 7

在 apache kafka 中有compression.type具有有效值的生产者配置

生产者生成的所有数据的压缩类型。默认为无(即无压缩)。有效值为 none、gzip、snappy、lz4 或 zstd

所以你可以在生产者配置中设置

ProducerConfig.COMPRESSION_TYPE_CONFIG "snappy"
Run Code Online (Sandbox Code Playgroud)

或通过使用属性

spring.kafka.producer.compression-type= # Compression type for all data generated by the producer.
Run Code Online (Sandbox Code Playgroud)