首页 > 解决方案 > webclient 不到 3 秒响应或 45 秒

问题描述

我有一个非常基本的 spring boot 2.2.4 应用程序,它使用带有阻塞调用的 webclient 查询下游系统。我没有对网络客户端进行任何配置(设置超时等),只是“开箱即用”地使用它。

我发现 webclient 调用的响应时间低于 3 秒或正好 45 秒,我觉得这很奇怪。为什么如果响应很慢,总是45 秒?

我能找到的关于 45 秒的唯一参考来自 Reactor Netty 文档:

4.6. 连接池

默认情况下,TCP 客户端使用“固定”连接池,最大通道数为 500,获取超时时间为 45s。这意味着如果有人尝试获取一个通道但池中没有一个通道,则该实现会创建一个新通道。当达到池中通道的最大数量时,将延迟新尝试获取通道,直到通道再次返回池中。该实现对池中的通道使​​用 FIFO 顺序。默认情况下,池中的通道没有指定空闲时间。

有人对为什么我的慢速网络客户端调用总是需要 45 秒才能完成有任何建议吗?

标签: javaspring-bootreactor-nettyspring-webclient

解决方案


我认为这与这个网络问题有关:

https://github.com/reactor/reactor-netty/issues/1012

我现在先看看那个。

感谢所有的答复!


推荐阅读