【问题标题】:Rest request socket timeout on client - what happens to remote request in webservice客户端上的休息请求套接字超时-Web服务中的远程请求会发生什么
【发布时间】:2015-07-28 07:58:52
【问题描述】:

我创建了一个调用外部 web 服务的 java web 应用程序。

在每个服务调用上设置有 45 秒的套接字超时(此超时对应于等待响应的时间)。

有时远程 Web 服务的响应时间超过 45 秒,并且出现套接字超时。这是不寻常的,但它可能会发生。

我的问题/困惑是,如果我在客户端应用程序上超时,那么 Web 服务上的该请求如何受到影响。

根据我的观察,我认为正在发生的事情是该请求在 Web 服务中一直存在,直到它完成,但之后就没有任何东西在等待响应了。

这与正常行为一致吗?是否应该以某种方式在 Web 服务中处理? IE。 Web 服务中是否有办法知道客户端应用程序不再侦听并停止处理。

丢失的请求又会怎样?

我问这个是因为我不想在网络服务中造成资源泄漏或挂起线程

谢谢

【问题讨论】:

    标签: java rest http


    【解决方案1】:

    Web 服务在发送响应时最终会遇到“连接重置”,容器会正确恢复。

    【讨论】:

    • 请求完成后是否会重置连接并发现没有任何东西在等待响应? IE。工作是否会在 Web 服务中继续进行,直到完成?
    【解决方案2】:

    如果您使用的是 restTemplate ,请增加时间: rest.service.connection.timeout ;尝试将其设置为 30 秒。

    【讨论】:

      猜你喜欢
      • 2021-01-05
      • 2013-03-07
      • 1970-01-01
      • 2016-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多