Spring Cloud Streams生产者压缩类型参数被忽略问题排查
Spring Cloud Stream Kafka生产者压缩类型配置无效问题解决
你的问题出在配置路径未匹配Spring Cloud Stream Kafka binder的正确参数位置,以下是正确的配置方式及问题原因:
方式一:针对特定绑定配置压缩类型
按照官方文档要求,正确的配置路径需将compression.type放在spring.cloud.stream.kafka.bindings.<channelName>.producer节点下,修改后的配置如下:
spring: cloud: stream: bindings: process-in-0: destination: in-topic binder: kafkaProd group: ms-pos-sales-mirror process-out-0: destination: out-topic binder: kafkaNewProd kafka: bindings: process-out-0: producer: compression.type: gzip
方式二:通过Kafka原生配置项设置
若使用configuration节点配置Kafka原生参数,需直接指定compression.type参数名,无需嵌套在compression节点下,修改后的配置:
spring: cloud: stream: bindings: process-in-0: destination: in-topic binder: kafkaProd group: ms-pos-sales-mirror process-out-0: destination: out-topic binder: kafkaNewProd producer: configuration: compression.type: gzip
原配置无效的原因
- 第一种配置里的
producer.compression: gzip并非Spring Cloud Stream Kafka binder的合法参数,框架无法识别该配置项,因此直接忽略。 - 第二种配置里将
compression.type嵌套在compression节点下,不符合Kafka原生配置的参数格式,客户端无法读取到该配置,所以始终使用默认的none压缩类型。
内容的提问来源于stack exchange,提问作者Alexey Khudyakov
相关产品推荐
相关产品推荐

