Поскольку ваша подпись шлюза должна возвращать Future<Message<String>>
, это рассматривается как асинхронный шлюз: https://docs.spring.io/spring-integration/docs/5.0.6.RELEASE/reference/html/messaging-endpoints-chapter.html#async-gateway
По умолчанию используется
private volatile AsyncTaskExecutor asyncExecutor = new SimpleAsyncTaskExecutor();
Который действительно раскручивает новую ветку для каждого нового сообщения. И что важно: он ждет ответа, чтобы выполнить это Future
. Согласно вашему коду никакого ответа не будет, поэтому ваши потоки в шлюзе очень долго ничего не ждут.
Вам следует рассмотреть возможность изменения подписи вашего шлюза на тип возврата void
. Таким образом, вы действительно отправите и забудете. Не будет никаких фоновых дополнительных тем ни за что.