我的应用程序正在使用绑定到 GCP pubsub 的 Spring Cloud Stream 接收消息。我正在试验以下配置参数:
spring.cloud.gcp.pubsub.subscriber.executor-threads
spring.cloud.stream.bindings.<channelName>.consumer.concurrency
Run Code Online (Sandbox Code Playgroud)
该应用程序有 3 个不同的通道,每个通道都定义了一个消费者组。应用程序的多个实例将在生产中运行(在 kubernetes 上)。
我正在尝试找到正确的设置进行配置,以确定在每个应用程序实例中可以并行处理多少消息。我一直在我的本地机器上尝试调整上述两个参数,但似乎只有 executor-threads 有任何影响。如果我将其设置为 5,并将一堆消息泵入系统,我会在消息处理日志中看到 5 个线程。如果我将它提高到 10,我会在那里看到 10 个线程。然而,并发参数似乎没有任何作用,无论它是设置为 1 还是 10 或其他什么。
如果有的话,这些参数之间的关系是什么?并发参数是否仅用于 Rabbit 或 Kafka 等其他绑定器?
谢谢。