我执行非阻塞连接到服务器。非阻塞连接超时
在中选择以考虑服务器停机/忙碌时使用什么合适的超时值?
P.S.
由于服务器关闭或忙碌,连接可能会失败。
如果服务器出现故障,我总是会以选择超时结束。
更有趣的情况是服务器忙时。恕我直言1秒足够TCP握手。如果连接到服务器需要很长时间,则与服务器的所有通信都会延迟。那么是否合理决定等待选择 max 1秒?
我执行非阻塞连接到服务器。非阻塞连接超时
在中选择以考虑服务器停机/忙碌时使用什么合适的超时值?
P.S.
由于服务器关闭或忙碌,连接可能会失败。
如果服务器出现故障,我总是会以选择超时结束。
更有趣的情况是服务器忙时。恕我直言1秒足够TCP握手。如果连接到服务器需要很长时间,则与服务器的所有通信都会延迟。那么是否合理决定等待选择 max 1秒?
在这种情况下,节点会在超时后重新发送数据包,所以不要使用足够握手的值。你可以用tcpdump
玩一下,断开连接(拔掉以太网电缆),看看发生了什么。
类似10-20秒的应该没问题,但这取决于你的任务的重要程度......
这真的取决于你,但我想像10-20秒这样的东西是合理的时间。
Apache's default KeepAliveTimeout is 15 seconds,这是您可以使用的一种标准。
我认为他们谈论其他超时:“服务器将等待持续连接的后续请求的时间量”。 – dimba
@dimba:确实,它们不是同一件事,但它们都是远程机器的超时请求,所以它们将处于同一个球场。 –
到服务器的连接应该是几乎立即。我认为这可能有点主观,但几秒钟应该是绰绰有余。对于最近的一些工作,我们使用了10秒钟,这已经吸引了我们所有的案例。
我使用了10秒钟。 –
这个问题没有一个确定的答案。我不认为这是你的错,它只是一个非常困难的问题,你将不得不做一些试验和错误,找到一个适合你的价值。 –