自2024年7月31日起, Amazon SDK for Java 1.x已进入维护模式,并将于2025年12月31日end-of-support
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
设置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.ttlnetworkaddress.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表示的上运行的所有应用程序都使用此设置。