Web服务连接超时和请求超时之间的区别

7
WebClientTestService service = new WebClientTestService() ;
int connectionTimeOutInMs = 5000;
Map<String,Object> context=((BindingProvider)service).getRequestContext();
context.put("com.sun.xml.internal.ws.connect.timeout", connectionTimeOutInMs);
context.put("com.sun.xml.internal.ws.request.timeout", connectionTimeOutInMs);
context.put("com.sun.xml.ws.request.timeout", connectionTimeOutInMs);
context.put("com.sun.xml.ws.connect.timeout", connectionTimeOutInMs);

请分享主要的连接超时和请求超时之间的差异。
我需要知道这些参数值的推荐值。
设置超时值的标准是什么?
1个回答

9
请分享主要的连接超时和请求超时之间的区别。
我需要知道这些参数值的推荐值。
  • 连接超时(10秒-30秒):等待建立初始连接的时间,例如如果服务当前不可用。
  • 套接字超时(10秒-20秒):如果服务在发送数据后停止响应,等待多长时间。
  • 请求超时(30秒-300秒):等待整个请求完成的时间。
请问设置超时值的标准是什么?
这取决于Web用户会在1-2分钟内没有发生任何事情而变得不耐烦,但可以允许后端请求运行更长时间。
还要考虑服务器资源直到请求完成(或超时)才被释放 - 因此,如果您有太多请求和长超时时间,则服务器可能会耗尽资源并且无法继续服务其他请求。
请求超时应设置为大于预期请求完成时间的值,也许还要留出一些空间以允许在重负载下偶尔较慢的性能。
连接/套接字超时通常设置较低,因为通常表示服务器问题,在等待另外10-15秒通常不会解决问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接