Configurar el TTL de JVM para las búsquedas de nombres DNS - AWS SDK for Java 1.x

Anunciamos la próxima versión end-of-support para AWS SDK for Java (v1). Se recomienda que migre a AWS SDK for Java versión 2. Para ver las fechas, los detalles adicionales y la información sobre cómo realizar la migración, consulte el anuncio enlazado.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Configurar el TTL de JVM para las búsquedas de nombres DNS

La máquina virtual de Java (JVM) almacena en caché las búsquedas de nombres DNS. Cuando la JVM convierte un nombre de host en una dirección IP, guarda en caché la dirección IP durante un período de tiempo específico, conocido como TTL. time-to-live

Como AWS los recursos utilizan entradas de nombres DNS que cambian de vez en cuando, le recomendamos que configure la JVM con un valor TTL de 5 segundos. Con esto se asegurará de que cuando cambie la dirección IP de un recurso, su aplicación pueda recibir y utilizar la nueva dirección IP del recurso volviendo a consultar el DNS.

En algunas configuraciones de Java, el TTL predeterminado de JVM está establecido de forma que nunca se actualicen las entradas DNS hasta que se reinicie la JVM. Por lo tanto, si la dirección IP de un AWS recurso cambia mientras la aplicación aún se está ejecutando, no podrá usar ese recurso hasta que reinicie manualmente la JVM y se actualice la información de IP almacenada en caché. En este caso, es fundamental establecer el TTL de la JVM de forma que actualice periódicamente la información de las direcciones IP almacenada en caché.

Cómo configurar el TTL de JVM

Para modificar el TTL de la JVM, defina el valor de la propiedad de seguridad networkaddress.cache.ttl y establezca la propiedad en el archivo para Java 8 o en el $JAVA_HOME/jre/lib/security/java.security archivo para networkaddress.cache.ttl Java 11 o superior. $JAVA_HOME/conf/security/java.security

El siguiente es un fragmento de un archivo que muestra la caché TTL configurada en 5 segundosjava.security.

# # 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 ...

Todas las aplicaciones que se ejecutan en la JVM representada por la variable de $JAVA_HOME entorno utilizan esta configuración.