我目前正在做一些网络编程,并且有几个关于超时的问题。
执行 ping 操作时是否有建议的超时时间?
此外,进行 URL 连接时是否有建议的超时时间?
编辑:就我而言,通过 ping,我只是想查看设备是否连接到网络。通过 URL 连接,我尝试打开一个 URL 并从中获取文本。
谢谢
最佳答案
这取决于您要连接的位置。
举个例子:如果您连接到同一数据中心甚至同一机架中的另一个盒子,则只有很少的跳转(路由器、交换机、防火墙...),并且通常应在第二个下建立连接 -因此不需要 30 秒超时(我将其设置为 5 秒)。
如果您连接到另一个大陆的盒子,那就完全不同了。数据包丢失、路由和连接拥挤可能会减慢连接速度。 30 秒或 60 秒的超时听起来很公平。
此外,您应该考虑您的客户是否真的想等待 60 秒。再举一个例子,如果您连接到 Web 服务以便处理来自用户的 HTTP 请求。等待 60 秒没有多大意义,因为用户无论如何都会取消/离开请求。此外,这种阻塞服务调用可能会导致大量等待线程填满服务器的线程池 - 这不是一件好事。在这种情况下,我会将超时设置为 10 秒,这样一旦 Web 服务变慢,就会冒着向用户抛出“服务不可用”或类似页面的风险。
关于java - 建议的 Ping 和 URL 连接超时是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2426877/