Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使线程特定于spring cloud GCP pubsub中的消息通道_Java_Spring_Spring Cloud_Google Cloud Pubsub_Java Threads - Fatal编程技术网

Java 使线程特定于spring cloud GCP pubsub中的消息通道

Java 使线程特定于spring cloud GCP pubsub中的消息通道,java,spring,spring-cloud,google-cloud-pubsub,java-threads,Java,Spring,Spring Cloud,Google Cloud Pubsub,Java Threads,我有一个运行GCP PubSub消息的spring云应用程序。我有两个消息入站频道,订阅了两个不同的订阅者。在应用程序的负载/压力测试期间,我面临的问题是,具体的线程数设置如下: spring.cloud.gcp.pubsub.subscriber.executor-threads: 350 spring.cloud.gcp.pubsub.subscriber.parallel-pull-count: 2 spring.cloud.gcp.pubsub.subscriber.max-acknow

我有一个运行GCP PubSub消息的spring云应用程序。我有两个消息入站频道,订阅了两个不同的订阅者。在应用程序的负载/压力测试期间,我面临的问题是,具体的线程数设置如下:

spring.cloud.gcp.pubsub.subscriber.executor-threads: 350
spring.cloud.gcp.pubsub.subscriber.parallel-pull-count: 2
spring.cloud.gcp.pubsub.subscriber.max-acknowledgement-threads: 700
当通道1的消息拉入的进程繁忙时,我没有足够的线程供通道2拉入消息。解决方案是限制/配置每个通道的线程数。我发现很难弄明白这一点。请帮帮我!以下是我提到的渠道:

@Bean
@ServiceActivator(inputChannel = "pubsubInputChannel1")
public MessageHandler extractionMessageReceiver() {
    return message -> {
        // do something
    };
}

@Bean
@ServiceActivator(inputChannel = "pubsubInputChannel2")
public MessageHandler extractionMessageReceiver() {
    return message -> {
        // do something
    };
}

请注意,订户线程一直处于繁忙状态,直到消息拉动的特定进程结束。

我熟悉Cloud PubSub,但不熟悉Spring。看起来问题主要是关于SpringServiceActivator节流的。也许将问题改为“如何通过inputChannel限制ServiceActivator的激活?”