Алгоритм увеличения параллелизма выполняется в потоке (ах) слушателя, поэтому спящий поток, подобный этому, будет препятствовать его работе.
Следующее приложение показывает, что оно работает как задумано ...
@SpringBootApplication
@EnableBinding(Sink.class)
public class So59723356Application {
private static final Logger log = LoggerFactory.getLogger(So59723356Application.class);
public static void main(String[] args) {
SpringApplication.run(So59723356Application.class, args);
}
@StreamListener(Sink.INPUT)
public void listen(String in) throws InterruptedException {
log.info(in);
Thread.sleep(1_000);
}
@Bean
public ApplicationRunner runner(RabbitTemplate template) {
return args -> IntStream.range(0, 50).forEach(i -> template.convertAndSend("input", "input", "foo"));
}
}
spring.cloud.stream.bindings.input.group=group
spring.cloud.stream.bindings.input.consumer.concurrency=1
spring.cloud.stream.rabbit.bindings.input.consumer.max-concurrency=5
и
2020-01-14 14:20:51.849 INFO 71536 --- [ input.group-1] com.example.demo.So59723356Application : foo
2020-01-14 14:20:51.852 INFO 71536 --- [ main] com.example.demo.So59723356Application : Started So59723356Application in 1.729 seconds (JVM running for 2.123)
2020-01-14 14:20:52.855 INFO 71536 --- [ input.group-1] com.example.demo.So59723356Application : foo
2020-01-14 14:20:53.862 INFO 71536 --- [ input.group-1] com.example.demo.So59723356Application : foo
2020-01-14 14:20:54.869 INFO 71536 --- [ input.group-1] com.example.demo.So59723356Application : foo
2020-01-14 14:20:55.874 INFO 71536 --- [ input.group-1] com.example.demo.So59723356Application : foo
2020-01-14 14:20:56.882 INFO 71536 --- [ input.group-1] com.example.demo.So59723356Application : foo
2020-01-14 14:20:57.885 INFO 71536 --- [ input.group-1] com.example.demo.So59723356Application : foo
2020-01-14 14:20:58.889 INFO 71536 --- [ input.group-1] com.example.demo.So59723356Application : foo
2020-01-14 14:20:59.894 INFO 71536 --- [ input.group-1] com.example.demo.So59723356Application : foo
2020-01-14 14:21:00.901 INFO 71536 --- [ input.group-1] com.example.demo.So59723356Application : foo
2020-01-14 14:21:01.906 INFO 71536 --- [ input.group-1] com.example.demo.So59723356Application : foo
2020-01-14 14:21:02.911 INFO 71536 --- [ input.group-1] com.example.demo.So59723356Application : foo
2020-01-14 14:21:03.917 INFO 71536 --- [ input.group-1] com.example.demo.So59723356Application : foo
2020-01-14 14:21:03.917 INFO 71536 --- [ input.group-2] com.example.demo.So59723356Application : foo
2020-01-14 14:21:04.922 INFO 71536 --- [ input.group-2] com.example.demo.So59723356Application : foo
2020-01-14 14:21:04.922 INFO 71536 --- [ input.group-1] com.example.demo.So59723356Application : foo
2020-01-14 14:21:05.924 INFO 71536 --- [ input.group-2] com.example.demo.So59723356Application : foo
2020-01-14 14:21:05.924 INFO 71536 --- [ input.group-1] com.example.demo.So59723356Application : foo
2020-01-14 14:21:06.930 INFO 71536 --- [ input.group-2] com.example.demo.So59723356Application : foo
2020-01-14 14:21:06.930 INFO 71536 --- [ input.group-1] com.example.demo.So59723356Application : foo
См. Начало нового потока в 14:21:03.917
.