Java和/etc/resolv.conf DNS服务器故障转移

执行摘要

  • 如果第一个失败或超时,Java是否查询下一个resolv.conf名称服务器条目?
  • Java认为parsing器“closures”的默认超时是什么?

细节

在/etc/resolv.conf中,在大多数站点中,有多个configuration为供系统使用的DNS服务器。 任何人都可以澄清,如果列表中的第一个DNS服务器失败,会发生什么? 例如,想象下面的resolv.conf

search example.com nameserver 8.8.8.8 nameserver 4.4.4.4

如果8.8.8.8变得无法访问那么Java将尝试4.4.4.4? 根据我们的经验,我们看不到许multithreading正在等待parsingDNS名称,即使备份DNS服务器可以访问。

在Linux上,java将把主机名parsing委托给实际parsing的底层C系统库。

在查询/etc/nsswitch.conf中指定的其他信息源(认为是/ etc / hosts,可能是NIS或LDAP)后,将按照/etc/resolv.conf中指定的顺序查询名称服务器。

你可以在/etc/resolv.conf中指定一个超时值,根据手册页的默认值是5秒。

如果你的第一个服务器给出了一个有效的错误代码,即servfail第二个名称服务器将不会被查询