parallelStream
может вызвать неожиданное поведение несколько раз. Он использует общий ForkJoinPool
. Так что если у вас есть параллельные потоки где-то в коде, он может иметь блокирующий характер для долго выполняющихся задач. Даже в одном потоке, если некоторые задачи занимают много времени, все рабочие потоки будут заблокированы.
Хорошее обсуждение этого stackoverflow . Здесь вы видите некоторые хитрости для назначения конкретной задачи ForkJoinPool.
Прежде всего убедитесь, что ваша служба REST не блокируется.
Еще одна вещь, которую вы можете сделать, это поиграть с размером пула, поставив -Djava.util.concurrent.ForkJoinPool.common.parallelism=4
для JVM.