I did some experiments with spring cloud streaming where kafka is data source.It was required to configure dlq
and my configuration don't support it.So I switched on open source example and it really works.
spring.cloud.stream.kafka.streams.binder: configuration: commit.interval.ms: 1000 default.key.serde: org.apache.kafka.common.serialization.Serdes$StringSerde default.value.serde: org.apache.kafka.common.serialization.Serdes$IntegerSerde application.id: dlq-demo-sample serdeError: sendToDlqspring.cloud.stream.bindings.process-out-0: destination: countsspring.cloud.stream.bindings.process-in-0: destination: wordsspring.cloud.stream.kafka.streams.bindings.process-in-0.consumer: dlqName: words-count-dlq valueSerde: org.apache.kafka.common.serialization.Serdes$IntegerSerde
The example uses <spring-cloud.version>2020.0.2</spring-cloud.version>
and
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.4.4</version><relativePath/></parent>
I upgraded this libraries to newer versions: <spring-cloud.version>2023.0.0</spring-cloud.version>
and
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.2.2</version><relativePath/></parent>
After updating versions the usual scenario works as expected (in case the value serde is StringSerde
), but DLQ configuration ignored (using original yml
).
Do you think that I updated example to incompatible libraries?
...following spring documentation its should be compatible:
|Release Train | Spring Boot Generation ||---------------------------------------------||2023.0.x aka Leyton | 3.2.x |...
Do you think I missed some important properties to make it working with newer spring versions?