Yuval
Yuval

Reputation: 834

Map configuration for kafka producer in properties file fails

I'm trying to add a producer configuration to my project, using Spring Integration and Kafka underneath.

Since I didn't find anywhere to put it, I thought I should add it in my application.properties under:

spring.cloud.stream.kafka.bindings.output.producer.configuration

However, I couldn't compile the code using any the following formats:

spring.cloud.stream.kafka.bindings.output.producer.configuration=request.timeout.ms=100000
spring.cloud.stream.kafka.bindings.output.producer.configuration={'request.timeout.ms':'100000'}
spring.cloud.stream.kafka.bindings.output.producer.configuration={"request.timeout.ms":"100000"}
spring.cloud.stream.kafka.bindings.output.producer.configuration=request.timeout.ms:100000

I'm always getting this error:

Binding to target org.springframework.cloud.stream.binder.kafka.KafkaExtendedBindingProperties@104392ba failed:

    Property: spring.cloud.stream.kafka.bindings[output].producer.configuration
    Value: request.timeout.ms:100000
    Reason: Failed to convert property value of type 'java.lang.String' to required type 'java.util.Map' for property 'bindings[output].producer.configuration'; nested exception is java.lang.IllegalStateException: Cannot convert value of type 'java.lang.String' to required type 'java.util.Map' for property 'configuration': no matching editors or conversion strategy found

Any idea how to implement this configuration to the producers?

Upvotes: 0

Views: 701

Answers (1)

Nishu Tayal
Nishu Tayal

Reputation: 20840

You should use in the following way :

spring.cloud.stream.kafka.bindings.output.producer.configuration.request.timeout.ms=100000

Configuration name should be followed by
spring.cloud.stream.kafka.bindings.<binding name>.producer.configuration prefix

In this way, you can add any number of configurations.

Upvotes: 1

Related Questions