Spring Cloud Streaming对于两个不同组的不同并发设置不起作用

时间:2018-09-04 18:33:30

标签: spring spring-boot spring-cloud spring-cloud-stream spring-rabbitmq

我已经配置了默认并发设置,并且我有另一个组需要不同的并发级别,但是第二个组无论如何都将默认并发设置为1。 使用Spring Boot 1.5.4和springCloudVersion Dalston.SR4可以正常工作。 当前版本是spring-boot 2.0.4,springCloudVersion是Finchley.SR1。 我正在使用RabbitMQ。

spring.cloud.stream.default.group=foo spring.cloud.stream.default.consumer.concurrency=3

我还有另一个自定义组

spring.cloud.stream.bindings.customChannel.group=bar spring.cloud.stream.rabbit.bindings.customChannel.consumer.concurrency=5

foo组中的所有通道均为3。但是customChannel的并发默认为1。有人在升级方面遇到过类似的问题吗?

1 个答案:

答案 0 :(得分:1)

肯定还有其他事情发生;这对我来说很好:

@SpringBootApplication
@EnableBinding(So52172152Application.Foo.class)
public class So52172152Application {

    public static void main(String[] args) {
        SpringApplication.run(So52172152Application.class, args);
    }

    @StreamListener("one")
    public void listen1(String in) {

    }


    @StreamListener("two")
    public void listen2(String in) {

    }

    @StreamListener("three")
    public void listen3(String in) {

    }

    public interface Foo {

        @Input
        MessageChannel one();

        @Input
        MessageChannel two();

        @Input
        MessageChannel three();

    }

}

spring.cloud.stream.default.group=foo
spring.cloud.stream.default.consumer.concurrency=3

spring.cloud.stream.bindings.three.group=bar
spring.cloud.stream.bindings.three.consumer.concurrency=5

我在每个foo组队列中看到3个使用者,在bar组中看到5个使用者。