【发布时间】:2020-02-05 05:07:30
【问题描述】:
我目前正在使用这样的 spring-kafka 发送数据:
val json = objectWriter.writeValueAsString(obj)
kafkaTemplate.send(topic, json)
如何告诉 KafkaTemplate 在发送前使用 snappy 压缩 json?
【问题讨论】:
标签: java spring kotlin apache-kafka spring-kafka
我目前正在使用这样的 spring-kafka 发送数据:
val json = objectWriter.writeValueAsString(obj)
kafkaTemplate.send(topic, json)
如何告诉 KafkaTemplate 在发送前使用 snappy 压缩 json?
【问题讨论】:
标签: java spring kotlin apache-kafka spring-kafka
在 apache kafka 中有生产者配置 compression.type 具有有效值
生产者生成的所有数据的压缩类型。默认值为无(即不压缩)。 有效值为 none、gzip、snappy、lz4 或 zstd
所以你可以在生产者配置中设置
ProducerConfig.COMPRESSION_TYPE_CONFIG "snappy"
或通过使用属性
spring.kafka.producer.compression-type= # Compression type for all data generated by the producer.
【讨论】:
application.properties如果你启用自动配置,显示配置@pdeva
ProducerConfig.COMPRESSION_TYPE_CONFIG 怎么样(如果我不想使用 application.properties)。显然这是要在java代码中添加的,但是在哪里?
1.) 代理级别的压缩。
您可以在命令末尾使用--config compression.type=gzip 启动您的zookeeper 服务器,也可以在zookeeper 配置文件中添加此属性。
2.) 生产者级别的压缩
在生产者的 config/producer.properties 中设置属性 compression.type = gzip 或使用以下属性启动生产者
--compression-codec 'gzip'、'snappy'、'lz4' 或 'zstd'。
如果指定没有值,那么它
默认为“gzip”
【讨论】: