2011-06-26 43 views
1

我执行非阻塞连接到服务器。非阻塞连接超时

中选择以考虑服务器停机/忙碌时使用什么合适的超时值?

P.S.

由于服务器关闭或忙碌,连接可能会失败。

如果服务器出现故障,我总是会以选择超时结束。

更有趣的情况是服务器忙时。恕我直言1秒足够TCP握手。如果连接到服务器需要很长时间,则与服务器的所有通信都会延迟。那么是否合理决定等待选择 max 1秒?

+0

我使用了10秒钟。 –

+1

这个问题没有一个确定的答案。我不认为这是你的错,它只是一个非常困难的问题,你将不得不做一些试验和错误,找到一个适合你的价值。 –

回答

2

在这种情况下,节点会在超时后重新发送数据包,所以不要使用足够握手的值。你可以用tcpdump玩一下,断开连接(拔掉以太网电缆),看看发生了什么。

类似10-20秒的应该没问题,但这取决于你的任务的重要程度......

0

这真的取决于你,但我想像10-20秒这样的东西是合理的时间。

Apache's default KeepAliveTimeout is 15 seconds,这是您可以使用的一种标准。

+0

我认为他们谈论其他超时:“服务器将等待持续连接的后续请求的时间量”。 – dimba

+0

@dimba:确实,它们不是同一件事,但它们都是远程机器的超时请求,所以它们将处于同一个球场。 –

1

到服务器的连接应该是几乎立即。我认为这可能有点主观,但几秒钟应该是绰绰有余。对于最近的一些工作,我们使用了10秒钟,这已经吸引了我们所有的案例。