我正在尝试使用 REST 模板从 Spring MVC 应用程序调用 REST API。
这样做时,我们必须设置超时值(连接超时和读取超时)并在 YML 文件中维护。
超时从 YML 读取并在初始化休息模板时设置。
例如,如果我有这样的场景:-
连接超时 = 5 秒,读取超时 = 3 秒
我的问题是什么时候会发生读取超时?
考虑到最坏的情况(在第 5 秒建立连接,在第 8 秒之后会发生读取超时吗[在第 3 秒收到响应]?)
这两个超时是否相互依赖?
我搜索了相同的内容,但是没有得到答案,因为我得到了信息,因为连接超时是为了建立连接,从连接读取时会发生读取,但是读取超时值是否包括连接超时值也不清楚。
这可能是基本问题,但是我很困惑,因此任何有关此问题的指导/指示都会有所帮助。
谢谢 !
编辑:我已经完成了“Spring rest template readTimeOut”,它说时钟在请求第一次命中该套接字时开始,并在其中任何一个先出现时停止:请求完成或达到 readTimeout 但我在建立连接时也理解会有命中套接字。这是否意味着 readtimeout 也包括连接超时?
最佳答案
它们彼此独立。
比方说 httpUrlConntection.setConnectTimeout(10000); httpUrlConntection.setReadTimeout(10000);
所以我们在 TCP 握手发生之前有 10 秒的时间。一旦读取被触发,我们有 10 秒的时间来读取数据包。如果响应未完全传输,则抛出异常。
对于概念理解:
What is the difference between connection and read timeout for sockets?
关于java - 调用服务时连接超时 VS 读取超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52027333/