Mengatur JVM TTL untuk pencarian nama DNS - AWS SDK for Java 1.x

Kami mengumumkan yang akan datang end-of-support untuk AWS SDK for Java (v1). Kami menyarankan Anda bermigrasi ke AWS SDK for Java v2. Untuk tanggal, detail tambahan, dan informasi tentang cara bermigrasi, silakan merujuk ke pengumuman tertaut.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengatur JVM TTL untuk pencarian nama DNS

Mesin virtual Java (JVM) menyimpan cache pencarian nama DNS. Ketika JVM menyelesaikan nama host ke alamat IP, itu menyimpan alamat IP untuk jangka waktu tertentu, yang dikenal sebagai (TTL). time-to-live

Karena AWS sumber daya menggunakan entri nama DNS yang terkadang berubah, kami sarankan Anda mengonfigurasi JVM Anda dengan nilai TTL 5 detik. Ini memastikan bahwa ketika alamat IP sumber daya berubah, aplikasi Anda akan dapat menerima dan menggunakan alamat IP baru sumber daya dengan meminta DNS.

Pada beberapa konfigurasi Java, TTL default JVM diatur sehingga tidak akan pernah menyegarkan entri DNS sampai JVM dimulai ulang. Jadi, jika alamat IP untuk AWS sumber daya berubah saat aplikasi Anda masih berjalan, itu tidak akan dapat menggunakan sumber daya itu sampai Anda secara manual me-restart JVM dan informasi IP cache di-refresh. Dalam hal ini, sangat penting untuk mengatur TTL JVM sehingga secara berkala akan menyegarkan informasi IP cache.

Cara mengatur JVM TTL

Untuk memodifikasi TTL JVM, atur nilai properti keamanan networkaddress.cache.ttl, atur networkaddress.cache.ttl properti dalam file untuk Java 8 atau file untuk Java 11 atau lebih tinggi. $JAVA_HOME/jre/lib/security/java.security $JAVA_HOME/conf/security/java.security

Berikut ini adalah cuplikan dari java.security file yang menunjukkan cache TTL diatur ke 5 detik.

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

Semua aplikasi yang berjalan pada JVM diwakili oleh variabel $JAVA_HOME lingkungan menggunakan pengaturan ini.