2017-04-17 5 views
0

Oracle-Dokumentation sagt folgendes über Cache ttl -Speichert JVM URL aufgrund der Einstellung networkaddress.cache.ttl?

networkaddress.cache.ttl 
    Specified in java.security to indicate the caching policy for successful name lookups from the name service.. The value is specified as integer to indicate the number of seconds to cache the successful lookup. 

Wie funktioniert diese Einstellung Auswirkungen der DNS-Art und Weise gelöst wird? Ich habe zwei Knoten hinter dem Geo Load Balancer, zu dem ich für einen Dienst eine Verbindung herstelle. Wenn sie nun auf andere zwei Knoten zeigen und die obige Einstellung auf -1 gesetzt wird, würde sie dann immer noch versuchen, zu dem früher aufgelösten DNS zu gelangen und versuchen, zu dem Knoten zu gelangen, der wahrscheinlich nicht mehr existiert? Wenn ich den Sicherheitsmanager nicht verwende, hat diese Einstellung einen Wert?

Vielen Dank im Voraus.

Antwort

0

Das Standardverhalten von JVM besteht darin, für immer zu cachen (Einstellung -1), wenn der Sicherheitsmanager installiert ist. Sie müssen also das TTL-Timeout explizit festlegen, damit die DNS-Auflösung erneut versucht wird. Sie können diese Eigenschaft über den Sicherheitsmanager auf dem Anwendungsstart (App-Ebene) oder auf der Systemebene festlegen.

Für systemweit unter Datei bearbeiten, um TTL auf Null zu enthalten.

<JAVA_HOME>/jre/lib/security/java.security

networkaddress.cache.ttl=0 

Ohne Sicherheitsmanager: Regel Standardwert ist abhängig Jvm Typ o &. AWS verwendet 60 Sekunden, siehe this

PS: Die Einstellungen auf Systemebene überschreiben immer die App-Einstellungen.

+0

Mit Blick auf den Link, den Sie bereitgestellt haben, scheint es jedoch ratsam, die Cache-Einstellung unabhängig zu ändern. – JUG

+0

Ja für aws ec2's, da sie den DNS-Namen für jeden Dienst verwenden. – Ravi

Verwandte Themen