问题场景:
http长连接 & socketTimeout=2s
预期效果:一次Http请求耗时超过2s就断开连接,
但是明明socketTimeout=2s,为什么没有断开??
<如果不是这个问题下面就不用看了>
CONNECTIONREQUESTTIMEOUT
httpclient使用连接池来管理连接,这个时间就是从连接池获取连接的超时时间,可以想象下数据库连接池
CONNECTTIMEOUT
连接建立时间,三次握手完成时间
SOCKETTIMEOUT
数据传输过程中, 数据包 单次 传输间隔的最大时间
SocketTimeout = 1000ms: 表示socket 发送和接收端 单次数据传输超过1s 就会进行中断,如果每900ms都有一个数据包交互,那就会一直连接不断