我目前正在研究连接和套接字超时设置,但我对这些东西还是比较新的。
在黑暗中我们正在考虑在我们通过http调用另一台服务器运行json时,添加40秒作为连接和sockettimeout。
httpConnectionManagerParams.setConnectionTimeout(40000);
httpConnectionManagerParams.setSoTimeout(40000);
但我真的不知道如何理解使用的理想设置或最佳实践。我很感激,如果有人可以给我一些关于如何考虑什么的提示,或者提示如何在这些设置上提出良好的gestimate。
我正在寻找的那种建议是...... 40秒太长了,因为它可能会导致另一个问题......或者......你设置这个值越高,你拥有的机会就越大引起另一个问题......或者说40秒并不高......或者算出一个理想的数字乘以Y乘以T
感谢
添加服务器调用的firebug跟踪。
答案 0 :(得分:3)
没有理由为什么他们应该平等。分别考虑每个条件,您需要将其设置得足够高,以至于超时将指示真正的问题而不仅仅是临时过载,并且足够低以保持应用程序的响应性。
通常,连接超时40秒太长。我会怀疑双重数字。服务器应该能够每秒接受数十或数百个连接。
读取超时是完全不同的事情。正确的'值,如果存在这样的事情,则完全取决于请求的平均服务时间及其差异。作为起点,您可能希望将其设置为预期服务时间的两倍,或平均服务时间加上两个或三个标准差,完全取决于您的服务级别要求以及服务器的性能及其差异。对此没有严格的规定。许多合同服务级别协议(SLA)指定了“正常”和“正常”协议。响应时间为两秒,这可能会通知您的审议。但这是你的决定。