java - webclient 不到 3 秒响应或 45 秒
问题描述
我有一个非常基本的 spring boot 2.2.4 应用程序,它使用带有阻塞调用的 webclient 查询下游系统。我没有对网络客户端进行任何配置(设置超时等),只是“开箱即用”地使用它。
我发现 webclient 调用的响应时间低于 3 秒或正好 45 秒,我觉得这很奇怪。为什么如果响应很慢,总是45 秒?
我能找到的关于 45 秒的唯一参考来自 Reactor Netty 文档:
4.6. 连接池
默认情况下,TCP 客户端使用“固定”连接池,最大通道数为 500,获取超时时间为 45s。这意味着如果有人尝试获取一个通道但池中没有一个通道,则该实现会创建一个新通道。当达到池中通道的最大数量时,将延迟新尝试获取通道,直到通道再次返回池中。该实现对池中的通道使用 FIFO 顺序。默认情况下,池中的通道没有指定空闲时间。
有人对为什么我的慢速网络客户端调用总是需要 45 秒才能完成有任何建议吗?
解决方案
推荐阅读
- python - 用下划线替换字符串中的所有空格
- angular - 如果用户未登录,如何重定向到登录页面?
- scala - 在火花中将一行附加到一对 RDD
- javascript - 多次调用 setInterval 然后清除间隔,轮询未停止
- javascript - 垂直聊天滚动在 VueJs 中不起作用
- ruby-on-rails - 用巫术重置密码允许不匹配的确认
- ruby - 搜索 savon 响应作为 nokogiri 文档返回一个空数组
- ios - 我面临电话身份验证问题。手机身份验证在开发中运行良好,但在测试飞行构建时抛出错误
- android - crashlyticsUploadDeobs 花费了太多时间
- android - 按照连接到 Firebase 的步骤后,应用程序级别的 gradle 同步失败