在 Spring 引导中使用 FeignClient 进行同步休息 API 调用
Make Simultaneous Rest API calls using FeignClient in Spring Boot
假设我有 2 个微服务 A 和 B。现在对于服务 A 的特定请求,A 需要对相同的 API 进行多次 API 调用(使用不同的参数) .最初,我使用 Feign 客户端在微服务之间进行 rest 调用[从 Feign 客户端隐式支持负载平衡、服务发现和添加端口元数据等]。
这种方法的问题是,调用是同步的并且需要花费大量时间。如何/使用什么来触发多个请求并以非阻塞和异步方式等待响应?
TIA!
您可以使用 ExecutorServices 创建两个任务并使用 CompletableFutures 捕获来自两个微服务的两个响应
我想你可以考虑 Spring WebClient,它是 Spring Reactive 框架提供的异步、非阻塞解决方案。
当然,您也可以同时拨打电话。例如,
Mono<String> response1 = request1();
Mono<String> response2 = request2();
Mono.zip(response1, response2)
.flatMap(result -> transformer(result));
假设我有 2 个微服务 A 和 B。现在对于服务 A 的特定请求,A 需要对相同的 API 进行多次 API 调用(使用不同的参数) .最初,我使用 Feign 客户端在微服务之间进行 rest 调用[从 Feign 客户端隐式支持负载平衡、服务发现和添加端口元数据等]。
这种方法的问题是,调用是同步的并且需要花费大量时间。如何/使用什么来触发多个请求并以非阻塞和异步方式等待响应?
TIA!
您可以使用 ExecutorServices 创建两个任务并使用 CompletableFutures 捕获来自两个微服务的两个响应
我想你可以考虑 Spring WebClient,它是 Spring Reactive 框架提供的异步、非阻塞解决方案。
当然,您也可以同时拨打电话。例如,
Mono<String> response1 = request1();
Mono<String> response2 = request2();
Mono.zip(response1, response2)
.flatMap(result -> transformer(result));