设置JVMTTLDNS名称查询 - Amazon SDK for Java 1.x
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

自2024年7月31日起, Amazon SDK for Java 1.x已进入维护模式,并将于2025年12月31日end-of-support上线。我们建议您迁移到Amazon SDK for Java 2.x以继续接收新功能、可用性改进和安全更新。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

设置JVMTTLDNS名称查询

Java 虚拟机 (JVM) 缓存DNS名称查询。将主机名JVM解析为 IP 地址时,它会将 IP 地址缓存一段指定的时间,称为 time-to-live() TTL。

由于 Amazon 资源使用的DNS名称条目偶尔会发生变化,因此我们建议您将JVM的TTL值配置为 5 秒。这样可以确保当资源的 IP 地址发生变化时,您的应用程序将能够通过重新查询来接收和使用该资源的新 IP 地址。DNS

在某些 Java 配置中,会设置JVMTTL默认值,因此在重新启动之前,它永远不会刷新DNS条目。JVM因此,如果在应用程序仍在运行时 Amazon 资源的 IP 地址发生变化,则在您手动重启JVM并刷新缓存的 IP 信息之前,该资源将无法使用该资源。在这种情况下,至关重要的是要设置,TTL这样JVM它才能定期刷新其缓存的 IP 信息。

如何设置 JVM TTL

要修改TTL,请设置 n etworkaddress.cache.ttl 安全属性值,在 Java 8 的文件中设置该networkaddress.cache.ttl属性,在 Java 11 或$JAVA_HOME/conf/security/java.security更高版本$JAVA_HOME/jre/lib/security/java.security的文件中设置该属性。JVM

以下是java.security文件中的一段片段,显示TTL缓存设置为 5 秒。

# # This is the "master security properties file". # # An alternate java.security properties file may be specified ... # The Java-level namelookup cache policy for successful lookups: # # any negative value: caching forever # any positive value: the number of seconds to cache an address for # zero: do not cache ... networkaddress.cache.ttl=5 ...

在由$JAVA_HOME环境变量JVM表示的上运行的所有应用程序都使用此设置。