View a markdown version of this page

Menangani penggantian host dan penghentian koneksi - Amazon Neptune

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

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

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