![DNS 和长时间运行的进程(解析器)](https://linux22.com/image/210657/DNS%20%E5%92%8C%E9%95%BF%E6%97%B6%E9%97%B4%E8%BF%90%E8%A1%8C%E7%9A%84%E8%BF%9B%E7%A8%8B%EF%BC%88%E8%A7%A3%E6%9E%90%E5%99%A8%EF%BC%89.png)
我遇到一个问题,Java (1.8) 应用程序继续使用进程启动时配置的 DNS 服务器而不是当前配置。在 Java 应用程序重新启动之前,这种情况持续了一周。
具体来说,这是在 Centos 6 上运行(是的,我知道),带有 nscd(用于主机缓存的 600 秒 TTL)。 2 台 DNS 服务器中的一台已停用,并在不同的 IP 地址添加了一台新服务器。这已添加到 resolv.conf(即 2 个工作 DNS 服务器)并重新启动 nscd。然而,Java 似乎继续使用已退役的 DNS 服务器/没有切换到幸存的 DNS 服务器/没有尝试使用新的 DNS 服务器。
是否有关于解析器在这种情况下应如何表现的规则/期望?
- 是否应该定期检查配置?
- 超时时是否应该尝试另一台 DNS 服务器?
指向规范(Posix?)的指针将不胜感激