WebClient配置Keepalive时间
前言:WebClient默认状态下SO_KEEPALIVE的空闲时间为2个小时,对于大多数应用程序来说实在是太长了。所以在JDK-8u261及之后版本增加了四个TCP KeepAlive配置
1 | HttpClient client = HttpClient.create() |
SO_KEEPALIVE
用于开启或者关闭保活探测,默认情况下是关闭的
True表示启用TCP KeepAlive,这意味着当连接空闲一段时间时,TCP开始发送KeepAlive探测。
TCP_KEEPIDLE
设置连接如果没有数据发送的话,多久后发送KeepAlive探测,单位是秒
在TCP开始发送KeepAlive探测之前,连接需要保持空闲300秒
TCP_KEEPINTVL
前后两次探测之间的时间间隔,单位是秒
将单个KeepAlive探测之间的时间配置为60秒
TCP_KEEPCNT
关闭一个非活跃连接之前的最大重试次数
将TCP KeepAlive探测的最大数量配置为8