假設我有兩個微服務A和B。現在,對于服務A的一個特定請求,A需要對B進行同一個API的多個呼叫(引數不同)。最初,我使用feign客戶端在微服務之間進行休息呼叫[并隱含支持負載均衡、服務發現和從Feign客戶端添加埠元資料等]。
這種方法的問題是,這些呼叫是同步的,并且需要大量的時間。如何/用什么來發射多個請求,并以非阻塞和異步的方式等待回應?
TIA!
TIA!
uj5u.com熱心網友回復:
我認為你可以考慮Spring WebClient,這是一個由Spring Reactive框架提供的異步、非阻塞的解決方案。
當然,你也可以進行同步呼叫。例如,
Mono<String> response1 = request1();
Mono<String> response2 = request2();
Mono.zip( response1, response2)
.flatMap(result -> transformer(result))。
uj5u.com熱心網友回復:
你可以使用ExecutorServices來創建兩個任務,并使用CompletableFutures來捕獲來自兩個微服務的兩個回應
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/325790.html
標籤:
