0

我目前正在使用 spring-webflux 包的 Webclient 进行同步 REST 调用。

但是第一个请求所用的时间比 RestTemplate 所用的时间要长。

我观察到连续调用所花费的时间要少得多,并且与 RestTemplate 的调用大致相同。

有没有办法减少 Webclient 的初始延迟?

4

1 回答 1

3

默认情况下,HttpClient资源的初始化是按需进行的。这意味着第一个请求会占用初始化和加载所需的额外时间:

  • 事件循环组
  • 主机名解析器
  • 本机传输库(使用本机传输时)
  • 用于安全性的本机库(在 OpenSsl 的情况下)

您可以预加载这些资源 - 检查此文档

不能预加载的有:

  • 主机名解析发生在第一个请求中
  • 如果使用连接池(默认) - 第一个请求会建立到 URL 的连接,随后对同一 URL 的请求会重用池中的连接,因此它们更快。
于 2021-07-05T10:11:19.547 回答