Для чего это стоит, в моей конкретной ситуации вот что я смог выяснить.Надеюсь, это поможет кому-то еще в будущем.
Авторитетные DNS-серверы для цели в моем примере (some.publicserver.com) возвращают SERVFAIL для некоторых запросов.Вероятно, это является проблемой нагрузки, так как это происходит спорадически в течение дня.С моей настройкой AWS я использую DNS-серверы по умолчанию для моего VPC, которые предоставляются AWS.Эти серверы, по-видимому, не делают никакого кэширования.Я узнал, что Java выполняет некоторое кэширование для разрешений DNS через InetAddress, но по умолчанию это короткое окно (в большинстве реализаций, на мой взгляд, 30 секунд).
Итак, в конце концов, настоящая причина проблемыавторитетные DNS-серверы для some.publicserver.com не являются полностью надежными.Поскольку я не контролирую эти серверы, я думаю, что лучшим решением является использование кэширования DNS.Вариант № 1 - использовать локальное DNS-кэширование на моем экземпляре EC2 Ubuntu (что-то вроде dnsmasq).Вариант № 2 заключается в том, чтобы увеличить продолжительность кэширования, используемую Java, выполнив что-то вроде этого:
java.security.Security.setProperty("networkaddress.cache.ttl" , "900");
Я выбрал вариант № 2, так как он требовал меньших усилий и сводил к минимуму возможные побочные эффекты.Так что, это решило проблему для меня.