My application is receiving messages using Spring Cloud Stream bound to GCP pubsub. I'm experimenting with the following configuration parameters:
spring.cloud.gcp.pubsub.subscriber.executor-threads
spring.cloud.stream.bindings.<channelName>.consumer.concurrency
The application has 3 different channels, each of which has a consumer group defined. Multiple instances of the application will be running in production (on kubernetes).
I'm trying to find the right settings to configure to determine how many messages can be processed in parallel in each app instance. I've been experimenting on my local machine tweaking both of the above parameters, but only executor-threads seems to have any effect. If I set it to say 5, and pump a bunch of messages into the system, I see 5 threads in my message handling logs. If I bump it up to 10, I see 10 threads there. The concurrency parameter, however, doesn't seem to do anything, no matter if it's set to 1 or 10 or whatever.
What is the relationship between these parameters, if any? Is the concurrency parameter only used for other binders like Rabbit or Kafka?
Thanks.