当前位置: 首页 > 知识库问答 >
问题:

在Spring Boot中使用假客户端同时进行Rest API调用

顾学真
2023-03-14

假设我有2个微服务A和B。现在对于服务A上的特定请求,A需要对B进行多个相同API的API调用(使用不同的参数)。最初,我使用模拟客户端在微服务之间进行Rest调用[隐式支持负载平衡、服务发现和添加端口元数据等来自模拟客户端]。

这种方法的问题是,调用是同步的,并且需要大量时间。如何/使用什么来触发多个请求并以非阻塞和异步的方式等待响应?

TIA!

共有2个答案

蒋嘉颖
2023-03-14

您可以使用ExecutorServices创建两个任务,并使用CompletableFutures从两个微服务捕获两个响应

翟英达
2023-03-14

我认为您可以考虑Spring WebClient,它是Spring反应式框架提供的一种异步、无阻塞的解决方案

当然,你也可以同时打电话。实例

Mono<String> response1 = request1();
Mono<String> response2 = request2();

Mono.zip(response1, response2)
        .flatMap(result -> transformer(result));
 类似资料:
  • 使用Spring云合同验证生产者和消费者之间的合同。在我的消费者控制器中,我正在使用Feign client调用另一个微服务方法来获取一些数据。但是现在在SpringCloud contract中,为这个微服务进行存根调用是不可能的。 使用Spring Cloud与Netflix OSS。

  • 在我的应用程序中,我以以下方式加载缓存。 加载用户缓存loadUserCache() 加载帐户缓存loadAccountCache() 加载客户缓存loadCustomerCache() 上述每个调用都涉及一个数据库调用。像怀斯一样,有6-7个电话。 当我的应用程序加载时,我必须等待缓存加载。 那些都是一个接一个的顺序调用。 如果我能找到一种方法并行地进行这些调用,那么应用程序加载期间的等待时间将

  • 我是新的CodeIgniter和RestAPI。我试图在CodeIgniter中实现REST API,并使用了菲尔·斯特金的rest客户端和rest服务器。我看了一些教程,并成功地实现了Rest-Server部分(与Chrome的Rest Client APP进行了检查)。但是,为了实现Rest-Client,我遇到了一些麻烦。 我需要有cURL和CodeIgniter的cUrl库吗?如果是,我应

  • 我需要从Java代码中调用REST调用。 我有以下形式的证书 id 安全密钥 提供的算法 > 获取服务器时间 使用Id、安全密钥 现在授权在下面的表格 需要一个java客户端程序使用上述授权标头调用此REST调用。 我正在得到 HTTP响应401错误。 请提供在请求表单中设置授权标头的正确方法 代码: 错误: sun.net.www.protocol.http.IOException:服务器返回H

  • 问题内容: 我正在尝试用我编写的Android应用中的HTTPS连接替换当前工作的HTTP连接。HTTPS连接的附加安全性是必需的,因此我不能忽略此步骤。 我有以下内容: 配置为建立HTTPS连接并需要客户端证书的服务器 该服务器具有由标准大型CA颁发的证书。简而言之,如果我通过Android中的浏览器访问此连接,则可以正常运行,因为设备信任库可以识别CA。(因此它不是自签名的) 基本上是自签名的