与任何服务器的最大连接超时是多少?

马西亚兹

我有一个基于Spring Boot的简单Web应用程序,可以从多个API下载数据。其中一些没有及时响应,因为我connectionTimeout设置为4秒。
一旦摆脱connectionTimeout设置,大约20秒钟后就会出现异常。

因此,我的问题是,我可以尝试连接API多长时间,它依赖什么?那20秒从哪里来?如果一个API在40分钟的时间后响应,而我将无法捕捉到特定的时刻并丢失数据,该怎么办?我不希望那样发生。我有什么选择?

这是设置连接的代码。没什么特别的。

HttpComponentsClientHttpRequestFactory clientHttpRequestFactory = new HttpComponentsClientHttpRequestFactory(HttpClientBuilder.create().build());
    clientHttpRequestFactory.setConnectTimeout(4000);
    RestTemplate restTemplate = new RestTemplate(clientHttpRequestFactory);

然后我通过以下方式检索值:

 myObject.setJsonString(restTemplate.getForObject(url, String.class));
汤玛斯·提姆布尔

连接超时意味着您的程序在指定的时间内根本无法连接到服务器。可以配置超时,因为就像您说的那样,某些系统可能需要更长的时间才能连接,并且如果事先知道,则可以允许。否则,超时将起到保护作用,以防止应用程序永远等待,这在大多数情况下并不能真正带来良好的用户体验。

通常可以配置一个单独的超时来读取数据(套接字超时)。他们彼此之间不包容。

解决您的问题:

  1. 检查服务器是否正在运行并接受传入连接。您可能要使用curl或取决于仅仅是浏览器尝试进行连接。

  2. 如果一个工具可以连接,而另一个工具不能连接,请检查防火墙设置,并确保允许从Java程序进行传出连接。测试是否存在问题的最简单方法是暂时禁用防病毒和防火墙工具如果这允许连接,则您要么需要关闭固件,要么最好添加一个相应的异常。

  3. 在测试时,将超时设置为较高的设置(或尝试将其设置为0,这被解释为无限)。一旦工作,就可以考虑对其进行调整以反映您的服务器规格和可用性要求。

编辑:

我意识到这并不一定会有所帮助,因为您最终实现了连接。我将上述信息保留为一般信息。

我可以尝试连接API多长时间,它依赖什么?

最有可能托管API的服务器。如果过载,响应时间可能会延长。

那20秒从哪里来?

同样,这取决于API服务器。它可能是随机的,或者可能是在固定时间段内处理每个请求,然后才发现自己处于错误状态。在这种情况下,每次可能需要20秒。

如果一个API在40分钟的时间后响应,而我将无法捕捉到特定的时刻并丢失数据,该怎么办?我不希望那样发生。我有什么选择?

  1. 使用更可靠的API,可能需要支付服务保证金。
  2. 调整连接和套接字超时,以允许服务器端的功能(如果事先知道)。
  3. 如果响应确实是40分钟,那将是一个非常糟糕的服务,但是继续这个假设-如果数据集那么大,请探究API是否提供了流回调,从而将OutputStream传递到API的库方法中,准备好后,它将(异步)向其写入响应。
  4. 请记住,连接和套接字超时是分开的。一旦建立连接,连接超时就不再重要了(套接字已建立)。只要您开始并继续在套接字超时内接收数据(数据包到数据包),套接字超时也不会被触发。
  5. 使用无限超时(设置为0),但是如果服务器实际上处于脱机状态并且永远不会响应,则这可能导致应用程序中的可用性较差,以及资源泄漏。在这种情况下,您将拥有悬空的连接。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

最大连接数是多少?

Aiohttp服务器最大连接数

Go服务器中并发(同时)HTTP连接的理论最大数量是多少?

对于票务应用程序,iis 服务器中的连接超时值应该是多少

在Apache配置中,“每个孩子的最大连接数”的建议最大值是多少?

Nginx服务器允许客户端在一个HTTP 1.1连接中发送的最大请求数量是多少

使用c3p0连接池时,MySQL的最佳最大连接设置是多少?

连接超时,无法访问任何服务器,端口已打开,但连接被拒绝

PySQLPool连接的默认连接超时是多少?

每个 2.4 GHz 和 5 GHz Wi-Fi 空间流的最大连接速度和信道宽度是多少?

LAMP服务器的最小大小是多少?

TinkerGraph在gremlin服务器中的容量是多少?

SSH服务器连接超时

SSH 服务器上的连接超时

ldap连接的默认超时是多少

HttpPost发送到服务器和服务器响应之间的延迟是多少

Express.js连接超时与服务器超时

PostgreSQL:无法连接到服务器:连接超时

增加连接超时连接到服务器

连接服务器在SQL Server中发生连接超时

无法连接到Redis服务器。连接超时

AD域控制器服务器中的默认日志存储时间是多少?

.NET Core SignalR,服务器超时/重新连接问题

连接到Docker服务器时TFTP超时

SSH到远程服务器IP时连接超时

在检查服务器上的端口时获取连接超时

system(“ timedatectl”)“查询服务器失败:连接超时”

从服务器读取内容时连接超时

GCP 工作流的最大超时时间是多少?