尽管读取超时和连接超时,但仍使用 RestTemplate 卡住线程

问题描述

我使用的是 Spring 的 RestTemplate,我使用的 HTTP 工厂是 HttpComponentsClientHttpRequestFactory

由于被调用服务器的问题,我在进行 HTTP 调用时遇到了许多卡住的线程。因此,我使用 HttpComponentsClientHttpRequestFactory 配置了读取超时和连接超时。

这有帮助,但仅限于扩展,现在我看到不是所有线程都被立即卡住,而是至少有一些初始线程成功超时,但我注意到一段时间后我的线程又被 HTTP 卡住了打电话。

这是我的问题:

  • 由于我的读取和连接都超时,有没有想过为什么我的线程仍然卡在基于 RestTemplate 的 HTTP 调用上?
  • 我自己的想法是请求在网络中丢失了,我知道这在理论上是可能的,但在我的情况下实际上可能吗?
  • 搜索并发现我可以在 JVM 级别设置 sun.net.client.defaultConnectTimeoutsun.net.client.defaultReadTimeout,因为我已经在 HttpComponentsClientHttpRequestFactory 中使用了超时,它会产生任何有意义的影响吗?

对于我如何解决这个问题的任何其他想法或建议将不胜感激。


代码在虚拟机中,所以这是我能做的最好的:

enter image description here

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)