Это не связано с ограничением WebClient
в отношении пулов соединений, но на самом деле это связано с деталями реализации Reactor, которые вы можете изменить.
По умолчанию операторы Reactor, такие как flatMap
, имеют prefetch=32
(количество элементов, которые мы запрашиваем до того, как конечный подписчик запросит их), и maxConcurrency=256
(максимальное количество элементов, одновременно обрабатываемых оператором).
Вы можете использовать варианты Flux.flatMap(Function mapper, int concurrency, int prefetch)
, чтобы изменить это поведение.
Ваш фрагмент кода использует сочетание subscribeOn
и publishOn
; Я бы сказал, что если вы выполняете реактивную работу ввода-вывода с этим фрагментом кода, вы не должны пытаться планировать работу на упругом / параллельном планировщике. Удаление этих операторов лучше всего здесь.