🎄 Happy Holidays! 🥳

Most of Solace is closed December 24–January 1 so our employees can spend time with their families. We will re-open Thursday, January 2, 2024. Please expect slower response times during this period and open a support ticket for anything needing immediate assistance.

Happy Holidays!

Please note: most of Solace is closed December 25–January 2, and will re-open Tuesday, January 3, 2023.

Spring Cloud Stream Batch Consumer and Batch Producer

kirthi
kirthi Member Posts: 22 ✭✭

Batch mode is true and batch size is 10. Still when we run the application with volumes of data, the batch size grows upto 75.

Any suggestions on the below properties?

Properties:

spring.cloud.stream.bindings.receiveMessage-in-0.consumer.batch-mode=true

spring.cloud.stream.bindings.receiveMessage-in-0.consumer.use-native-decoding=true

spring.cloud.stream.bindings.receiveMessage-in-0.consumer.batchMaxSize= 10

spring.cloud.stream.bindings.receiveMessage-in-0.consumer.batchTimeout= 5000

spring.cloud.stream.bindings.receiveMessage-in-0.consumer.concurrency = 10

spring.cloud.stream.bindings.receiveMessage-in-0.consumer.max-attempts = 3

spring.cloud.stream.bindings.receiveMessage-in-0.consumer.back-off-initial-interval = 2000

spring.cloud.stream.bindings.receiveMessage-in-0.consumer.back-off-max-interval = 30000

spring.cloud.stream.bindings.receiveMessage-in-0.consumer.back-off-multiplier = 2

spring.cloud.stream.bindings.receiveMessage-in-0.consumer.default-retryable = true

Answers

  • nicholasdgoodman
    nicholasdgoodman Member, Employee Posts: 43 Solace Employee

    Hello,

    I am not completely sure why this is the case, but on my setup I can control the batch size by using the following settings:

    spring.cloud.stream.solace.bindings.receiveMessage-in-0.consumer.batch-max-size=10
    

    Can you give that a try and see if it helps?

  • giri
    giri Member, Administrator, Employee Posts: 116 admin

    Hi @kirthi

    Can you try setting the batch properties on the binder?

    spring.cloud.stream.solace.bindings.receiveMessage-in-0.consumer.batchMaxSize= 10

    spring.cloud.stream.solace.bindings.receiveMessage-in-0.consumer.batchTimeout= 5000