减少 webclient 调用的初始滞后

Decrease initial lag in webclient call

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

但是第一次请求的时间比RestTemplate要长

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

是否有减少 Webclient 初始延迟的解决方案?

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

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

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

无法预加载的内容有:

  • 第一个请求发生主机名解析
  • 如果使用连接池(默认)- 第一个请求会建立到 URL 的连接,随后对同一个 URL 的请求会重用来自 URL 的连接游泳池所以他们更快。