连接超时和套接字超时建议

时间:2015-07-09 10:05:09

标签: sockets http networking network-programming

我目前正在研究连接和套接字超时设置,但我对这些东西还是比较新的。

在黑暗中我们正在考虑在我们通过http调用另一台服务器运行json时,添加40秒作为连接和sockettimeout。

    httpConnectionManagerParams.setConnectionTimeout(40000);
    httpConnectionManagerParams.setSoTimeout(40000);

但我真的不知道如何理解使用的理想设置或最佳实践。我很感激,如果有人可以给我一些关于如何考虑什么的提示,或者提示如何在这些设置上提出良好的gestimate。

我正在寻找的那种建议是...... 40秒太长了,因为它可能会导致另一个问题......或者......你设置这个值越高,你拥有的机会就越大引起另一个问题......或者说40秒并不高......或者算出一个理想的数字乘以Y乘以T

感谢

修改

添加服务器调用的firebug跟踪。 enter image description here

1 个答案:

答案 0 :(得分:3)

没有理由为什么他们应该平等。分别考虑每个条件,您需要将其设置得足够高,以至于超时将指示真正的问题而不仅仅是临时过载,并且足够低以保持应用程序的响应性。

通常,连接超时40秒太长。我会怀疑双重数字。服务器应该能够每秒接受数十或数百个连接。

读取超时是完全不同的事情。正确的'值,如果存在这样的事情,则完全取决于请求的平均服务时间及其差异。作为起点,您可能希望将其设置为预期服务时间的两倍,或平均服务时间加上两个或三个标准差,完全取决于您的服务级别要求以及服务器的性能及其差异。对此没有严格的规定。许多合同服务级别协议(SLA)指定了“正常”和“正常”协议。响应时间为两秒,这可能会通知您的审议。但这是你的决定。