AWS SDK untuk Java 1.x mencapai akhir dukungan pada 31 Desember 2025. Kami menyarankan Anda bermigrasi ke AWS SDK for Java 2.x untuk terus menerima fitur baru, peningkatan ketersediaan, dan pembaruan keamanan.
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengatur TTL JVM untuk pencarian nama DNS
Mesin virtual Java (JVM) menyimpan cache pencarian nama DNS. Ketika JVM meresolusi nama host ke alamat IP, JVM menyimpan cache alamat IP untuk jangka waktu tertentu, yang disebut time-to-live (TTL).
Karena AWS sumber daya menggunakan entri nama DNS yang kadang-kadang berubah, sebaiknya Anda mengonfigurasi JVM 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 di-restart. Jadi, jika alamat IP untuk AWS sumber daya berubah saat aplikasi Anda masih berjalan, itu tidak akan dapat menggunakan sumber daya tersebut sampai Anda me-restart JVM secara manual dan informasi IP yang di-cache diperbarui. Dalam hal ini, sangat penting untuk mengatur TTL JVM sehingga secara berkala akan menyegarkan informasi IP yang di-cache.
Cara mengatur JVM TTL
Untuk memodifikasi TTL JVM, atur nilai properti keamanan networkaddress networkaddress.cache.ttl adalah properti keamanan, bukan properti sistem, yaitu, itu tidak dapat disetel dengan flag -D baris perintah.
Opsi 1: Atur secara terprogram di aplikasi Anda
Hu java.security.Security.setProperty()
import java.security.Security; public class MyApplication { public static void main(String[] args) { Security.setProperty("networkaddress.cache.ttl", "5"); // ... create SDK clients and run application } }
Opsi 2: Atur di file java.security
Atur networkaddress.cache.ttl properti dalam $JAVA_HOME/jre/lib/security/java.security file untuk Java 8 atau $JAVA_HOME/conf/security/java.security file untuk Java 11 atau lebih tinggi.
Berikut ini adalah cuplikan dari java.security file yang menunjukkan cache TTL diatur ke 5 detik.
# # 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 yang diwakili oleh variabel $JAVA_HOME lingkungan menggunakan pengaturan ini.
Opsi 3: Gunakan fallback properti sistem JDK (baris perintah)
Jika Anda tidak dapat mengubah konfigurasi atau kode keamanan, Anda dapat menggunakan properti sistem JDK. Ini bertindak sebagai fallback jika tidak ada properti keamanan yang didefinisikan.
sun.net.inetaddr.ttl— Mengontrol pencarian yang berhasil (TTL positif)sun.net.inetaddr.negative.ttl— Kontrol pencarian gagal (TTL negatif)
java -Dsun.net.inetaddr.ttl=5 -Dsun.net.inetaddr.negative.ttl=1 -jar myapp.jar
catatan
Ini adalah JDK-internal properti yang didokumentasikan dalam referensi