【发布时间】:2017-05-17 08:12:39
【问题描述】:
假设这是一个简单的无状态服务器。
如果服务器在处理完请求并写回响应后关闭连接,则
CLOSE_WAIT状态下的连接肯定太多了。如果让客户端先关闭连接,如果客户端不关闭它们,服务器端可能存在过多的活动连接。
那么如何处理这种情况呢?我应该使用 1 还是 2 或其他?
【问题讨论】:
假设这是一个简单的无状态服务器。
如果服务器在处理完请求并写回响应后关闭连接,则CLOSE_WAIT状态下的连接肯定太多了。
如果让客户端先关闭连接,如果客户端不关闭它们,服务器端可能存在过多的活动连接。
那么如何处理这种情况呢?我应该使用 1 还是 2 或其他?
【问题讨论】:
如果服务器在处理完请求并写回响应后关闭连接,则肯定是CLOSE_WAIT状态的连接太多了。
不会,但会有很多 TIME_WAIT 状态。
如果让客户端先关闭连接,如果客户端不关闭,可能服务器端活动连接过多。
所以服务器应该使用读取超时。
一般来说,服务器最好是接收第一个关闭的服务器。这样 TIME_WAIT 状态会在客户端而不是服务器上堆积,并且客户端不会有很多连接,所以这不是任何问题。
【讨论】: