Spring Cloud Feign Неблокирующий ввод-вывод или асинхронный вызов

Я разрабатываю микросервисы с использованием облачной платформы Spring, где service1 вызывает несколько других микросервисов, например. service2, service3, service 4 и т. д. Эти службы могут быть вызваны параллельно, и service1 будет агрегировать результат. Могу ли я использовать Spring облачную симуляцию (http://cloud.spring.io/spring-cloud-static/Dalston.SR1/#spring-cloud-feign) для создания клиента отдыха и асинхронного вызова служб или следует использовать Spring 4 AsyncRestTemplate для асинхронного вызова служб?


person Debopam    schedule 12.06.2017    source источник
comment
Вы когда-нибудь выясняли, возможно ли это   -  person mad_fox    schedule 30.08.2017
comment
Используйте EnableAsync, чтобы включить асинхронный режим. Метод, вызывающий сервис Rest с использованием feign, должен быть аннотирован @Async. Используйте CountDownLatch, чтобы проверить, все ли вызовы выполнены или нет   -  person Debopam    schedule 30.08.2017


Ответы (1)


Я использовал CompletableFuture для привязки асинхронных вызовов к нескольким микросервисам с использованием имитации клиента, но в конечном итоге не увенчался успехом. Для получения дополнительной информации перейдите по ссылке ниже. Я понял, что Feign не предназначен для асинхронного вызова или ввода-вывода с нулевым копированием.

https://github.com/OpenFeign/feign/issues/361

person Rajesh Yerur    schedule 09.07.2018
comment
Есть ли способ асинхронного вызова с симуляцией. - person GoutamS; 20.07.2019
comment
Я думаю, вам следует использовать WebClient.Builder из spring webflux для асинхронного вызова - person Yogesh Katkar; 16.05.2021