我们遇到了同样的问题,经过一番挖掘后,我发现了根本原因:客户端和d性服务器之间的防火墙配置不匹配,tcp的内核配置仍然有效。
防火墙在3600秒后删除空闲连接。问题是tcp keep alive的内核参数设置为7200秒(RedHat 6.x / 7.x中的默认设置):
sysctl -n net.ipv4.tcp_keepalive_time7200
因此,在发送保持活动探测之前,连接已断开。d性http客户端中的asyncHttpClient似乎无法很好地处理掉线的连接,它只是等待套接字超时。
因此,请检查您的客户端和服务器之间是否有任何网络设备(负载平衡器,防火墙,代理服务器等)具有会话超时或类似超时,并增加该超时或降低tcp_keep_alive内核参数。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)