Как спроектировать реактивные микросервисы, которые имеют внешние блокировки API-вызовов? - PullRequest
0 голосов
/ 07 октября 2018

У меня есть несколько микросервисов, которые должны работать поверх фреймворка WebFlux.Каждый сервер имеет собственный API с Mono или Flux.Мы используем MongoDB, который поддерживается Spring (Spring Data MongoDb Reactive).

Проблема заключается в API внешней блокировки, который я должен использовать в своей системе.

У меня есть одно решение.Я могу просто обернуть блокирующие вызовы API в выделенный пул потоков и использовать его с CompletableFuture.

Есть ли что-то еще, чтобы решить мою проблему?Я думаю, что новый Rsocket не может решить мою проблему.

1 Ответ

0 голосов
/ 09 октября 2018

1. Если возможно, вы можете изменить вызов API блокировки на реактивный, используя класс WebClient.

Ссылки:

  1. Справочное руководство
  2. API WebClient
  3. Простой, полный образец

2.Если API блокировки нельзя изменитьдля реактивных мы должны иметь выделенный, хорошо настроенный пул потоков и изолировать там код блокировки.Здесь также есть пример здесь .

...