

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

# Menangani penggantian host dan penghentian koneksi
<a name="best-practices-ecs-eks-host-replacement"></a>

Ketika Neptunus menggantikan host (misalnya, selama pemeliharaan atau failover), koneksi yang ada ke host tersebut menjadi tidak valid. Di lingkungan kontainer, ini dapat menghentikan semua utas dalam wadah jika klien tidak menangani penggantian dengan anggun.

**Gunakan versi klien saat ini**

Jika Anda menggunakan bahasa kueri Gremlin, gunakan versi TinkerPop driver yang kompatibel dengan versi mesin Neptunus Anda (lihat [Mengakses grafik Neptune dengan Gremlin](access-graph-gremlin.md) tabel kompatibilitas). Jika Anda menggunakan driver Java, pertimbangkan `neptune-gremlin-client` — pembungkus di sekitar driver TinkerPop Java yang menambahkan fitur manajemen koneksi seperti pemeriksaan kesehatan titik akhir dan penanganan failover. Ini mengikuti aturan kompatibilitas versi yang sama dengan TinkerPop driver yang mendasarinya.

Gunakan `neptune-gremlin-client` versi 3.x (atau minimal versi 2.0.7), tergantung pada apa yang diizinkan oleh versi Neptunus Anda. Versi yang lebih baru ini meningkatkan ketahanan dan penanganan koneksi.

Untuk pengguna OpenCypher dengan driver Neo4j, tutup dan buat ulang `Driver` objek saat Anda mendeteksi kegagalan koneksi selama failover. Neptunus mendukung protokol Bolt versi 1 hingga 4.0. Untuk informasi selengkapnya, lihat [Praktik Terbaik Neptunus Menggunakan OpenCypher dan Bolt](best-practices-opencypher.md).

**Gunakan titik akhir cluster atau pembaca**

Jangan terhubung ke titik akhir instance secara langsung. Gunakan titik akhir cluster untuk menulis dan titik akhir pembaca untuk membaca. Jika Anda harus menggunakan titik akhir instance dengan`neptune-gremlin-client`, aktifkan pemfilteran pemeriksaan kesehatan titik akhir melalui API. `/status`

**Konfigurasikan probe keaktifan dengan toleransi**

Atur probe keaktifan Kubernetes Anda `failureThreshold` ke setidaknya 30 dengan periode 10 detik (total 300 detik). Hal ini mencegah Kubernetes memulai ulang pod selama sekitar 5 menit saat Neptunus menyelesaikan penggantian host.

**Terapkan coba lagi dengan backoff**

Satu permintaan yang gagal selama penggantian host seharusnya tidak merusak penampung. Terapkan logika coba lagi dengan backoff eksponensial pada kegagalan koneksi sehingga kesalahan sementara selama penggantian diselesaikan tanpa intervensi. [Untuk panduan tentang pengecualian yang dapat dicoba ulang, lihat pengecualian transaksi Neptunus.](https://docs.aws.amazon.com/neptune/latest/userguide/transactions-exceptions.html)