【发布时间】:2023-03-29 11:31:01
【问题描述】:
我的应用程序正在使用绑定到 GCP pubsub 的 Spring Cloud Stream 接收消息。我正在试验以下配置参数:
spring.cloud.gcp.pubsub.subscriber.executor-threads
spring.cloud.stream.bindings.<channelName>.consumer.concurrency
应用程序有 3 个不同的通道,每个通道都定义了一个消费者组。应用程序的多个实例将在生产环境中运行(在 kubernetes 上)。
我正在尝试找到要配置的正确设置,以确定每个应用实例中可以并行处理多少条消息。我一直在尝试在本地机器上调整上述两个参数,但似乎只有 executor-threads 有任何效果。如果我将其设置为 5,并将一堆消息泵入系统,我会在消息处理日志中看到 5 个线程。如果我将它增加到 10 个,我会在那里看到 10 个线程。然而,concurrency 参数似乎没有做任何事情,无论它设置为 1 还是 10 或其他什么。
如果有的话,这些参数之间的关系是什么?并发参数是否仅用于 Rabbit 或 Kafka 等其他 binder?
谢谢。
【问题讨论】:
标签: spring-cloud-stream google-cloud-pubsub