Мне нужно протестировать распределенное приложение JMS.
Приложение представляет собой SpringBoot 2.1.0 + Camel JMS Starter 3.0.0 + Artemis JMS Client 2.6.3
Я бы протестировал добавление Thread.sleep в исполнитель сообщений в течение 1 se c. и отправить подтверждение сообщения в конце выполнения (CLIENT_ACK).
Когда я установил concurrentConsumer = 5, я ожидал бы, что система обработает около 5 сообщений / 1se c. Вместо этого я испытываю нехватку потоков, и система обрабатывает только 1 сообщение / 1se c, игнорируя параметр concurrentConsumers.
from("jms:queue:start?concurrentConsumers=5")
Без Thread.sleep система отлично работает с concurrentConsumers = 5 и обрабатывает сообщения параллельно.
Кажется, Thread.sleep блокирует какой-то внутренний механизм Camel Компонент JMS, даже если я укажу concurrentConsumer и полагаю, что ThreadPool должен работать нормально.