Web服务连接超时和请求超时之间的差异

Shi*_*yan 5 java soap

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);
Run Code Online (Sandbox Code Playgroud)

请分享差异主要在连接超时和请求超时.

我需要知道这些参数值的推荐值.

设置超时值的标准是什么?

小智 6

请分享差异主要在连接超时和请求超时.

我需要知道这些参数值的推荐值.

  • 连接超时(10s-30s):等待进行初始连接的时间,例如服务当前是否不可用.
  • 套接字超时(10s-20s):如果服务在发送数据后停止响应,则等待多长时间.
  • 请求超时(30s-300s):等待整个请求完成的时间.

设置超时值的标准是什么?

这取决于如果1-2分钟后没有发生任何事情,网络用户将会感到不耐烦,但是可以允许后端请求运行更长时间.

还要考虑在请求完成(或超时)之前不释放服务器资源 - 因此,如果您有太多请求和超时,您的服务器可能会耗尽资源而无法为进一步的请求提供服务.

请求超时应设置为大于请求完成的预期时间的值,可能有一些空间允许在重负载下偶尔性能降低.

连接/套接字超时通常设置得较低,因为通常表示服务器问题,等待另外10-15秒通常无法解决.