如何确保不被探活搞死?
我们不能保证网络时时刻刻正常 rst 包不丢失,所以我们只能改造服务使得其更健壮。
正确解决方案如下:
- 服务端加入读超时时间。当 rst 包丢失导致服务端线程 hang 在读取上,超过一定时间后服务端线程会主动断开连接,释放资源,从而确保服务端线程能够服务于其它请求。
- 客户端请求服务端加入超时限制并进行重试。当一个服务 hang 死,导致连接其上的客户端也 hang 住后,超过一段时间后,客户端主动断开连接并且尝试请求其它可用服务。
现在我们清楚探活问题的来龙去脉,那么我想问:你的服务加入超时时间了么?你的服务会被探活搞死么?
来源: https://www.cnblogs.com/haolujun/p/8086557.html