【问题标题】:Decrease initial lag in webclient call减少 webclient 调用中的初始延迟
【发布时间】:2021-09-16 01:41:43
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: spring-boot spring-webflux reactor-netty spring-resttemplate


    【解决方案1】:

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

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

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

    不能预加载的有:

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

    【讨论】:

      猜你喜欢
      • 2011-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多