Наше приложение использует данные из нескольких очередей, предоставленных RabbitMQ.Чтобы увеличить пропускную способность, мы запускаем несколько потоков в очереди, которые выполняют блокировку из этих очередей.
Для нового сервиса мы хотим использовать Spring Boot и снова иметь несколько потоков в очереди, которые получают данные из этих очередей.Вот канонический код Spring Boot для обработки данных, поступивших из некоторой очереди:
@StreamListener(target = Processor.INPUT)
@SendTo(Processor.OUTPUT)
public Message<SomeData> process(Message<SomeData> message) {
SomeData result = service.process(message.getPayload());
return MessageBuilder
.withPayload(result)
.copyHeaders(message.getHeaders())
.build();
}
Теперь вопрос состоит в том, как заставить Spring Boot порождать несколько потоков для обслуживания одной очереди вместо одного потока.Пропускная способность очень важна для нашего приложения, следовательно, это необходимо.