Spring Reactive WebClient Flux Passthrough - PullRequest
       76

Spring Reactive WebClient Flux Passthrough

1 голос
/ 29 января 2020

Вот что я пытаюсь достичь с помощью потоковой передачи данных с помощью Flux.

Svc1 --flux -> Svc2 --flux -> MVC

Я могу для потоковой передачи данных из Svc1 успешно с помощью Flux. Моя конечная точка Svc1 создает приложение / поток + json и выглядит так:

{"stuff":"more stuff"}
...1 sec passes...
{"stuff":"other stuff"}
... and so on for n number

Проблема в том, что Svc2 передает эти данные в MVC. WebClient ждет всего результата этого потока, прежде чем что-либо делать. Он не «блокирует» мой код, но блокирует последующие функции WebClient.

Мой желаемый результат заключается в том, что, поскольку json элемент 1 передается в поток, он обрабатывается WebClient и отправляется на в другом потоке на MVC

Таким образом, поскольку элемент создается на самом конце, он будет доступен на внешнем интерфейсе до завершения потоковой передачи.

Вот мой код WebClient, с которым я работаю, чтобы попытаться разобраться, что я делаю не так?

WebClient client = WebClient.create(baseUrl)
          .get()
          .uri(url, uriVars)
          .retrieve()
          .bodyToFlux(String.class)
          .log()
          .subscribe()

WebClient получает это:

[{"stuff":"more stuff"}, {"stuff":"other stuff"}]

Помогите, пожалуйста! :)

...