TCP Keepalive 为什么救不了你的长连接

一个运行良好的 WebSocket 服务,突然在凌晨三点开始大面积掉线。日志里只有 “connection reset” 的报错,没有任何其他线索。你检查了服务器状态——CPU 正常,内存充足,网络畅通。重启服务后一切恢复,但第二天凌晨同一时间,问题再次出现。 ...

9 min · 4061 words

网络连接断开的深度解析:从TCP状态机到多层超时配置

凌晨3点,你被电话叫醒——生产环境的核心服务大面积报错,错误日志里全是Connection reset by peer和ETIMEDOUT。你花了四个小时排查,发现罪魁祸首是一个从未被关注的超时配置:某台负载均衡器的空闲超时从60秒被改成了30秒,而你的数据库连接池配置的是55秒心跳间隔。 ...

14 min · 6755 words