截至 2024 年 7 月 31 日, AWS SDK for Java 1.x 已進入維護模式,並將end-of-support
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定DNS名稱查詢JVMTTL的
Java 虛擬機器 (JVM) 會快取DNS名稱查詢。當 將主機名稱JVM解析為 IP 地址時,它會快取 IP 地址一段時間,稱為 time-to-live(TTL)。
由於 AWS 資源使用偶爾變更DNS的名稱項目,建議您JVM將 設定為 5 秒TTL的值。這可確保當資源的 IP 地址變更時,您的應用程式可以透過重新查詢 來接收和使用資源的新 IP 地址DNS。
在某些 Java 組態上,TTL會設定JVM預設值,因此在JVM重新啟動 之前,永遠不會重新整理DNS項目。因此,如果 AWS 資源的 IP 地址在應用程式仍在執行時變更,在您手動重新啟動 JVM並重新整理快取的 IP 資訊之前,將無法使用該資源。在此情況下,請務必設定 JVM,TTL以便定期重新整理其快取的 IP 資訊。
如何設定 JVM TTL
若要修改 JVM的 TTL,請設定 networkaddress.cache.ttl$JAVA_HOME/jre/lib/security/java.security
檔案中的 networkaddress.cache.ttl
屬性設定為 Java 8,或將$JAVA_HOME/conf/security/java.security
檔案設定為 Java 11 或更高版本。
以下是檔案的程式碼片段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
...
在環境變數JVM表示的$JAVA_HOME
上執行的所有應用程式都使用此設定。