Halaman ini menjelaskan Ketersediaan Tinggi (HA) untuk instance Memorystore for Redis di Paket Standar.
Ringkasan
Tingkat Standar melindungi instance Redis dari kegagalan umum dengan mereplikasi data ke satu atau beberapa replika, dan dengan menyediakan failover otomatis yang cepat ke replika.
Tingkat Standar disediakan dengan satu replika utama dan satu atau beberapa replika. Instance
Tingkat Standar yang menonaktifkan readReplicaMode
memiliki
satu replika non-baca. Instance Tingkat Standar yang mengaktifkan
readReplicaMode
memiliki satu hingga lima replika baca. Untuk menentukan apakah
readReplicaMode
diaktifkan, lihat Melihat informasi replika baca.
Memorystore for Redis menyediakan ketersediaan tinggi dengan mereplikasi Redis utama ke satu atau beberapa replika. Perubahan yang dibuat pada data di instance utama akan disalin ke replika menggunakan protokol replikasi asinkron Redis. Karena sifat replikasi yang asinkron, replika dapat tertinggal dari replika utama, bergantung pada kecepatan tulis di replika utama.
Jika terjadi kegagalan utama, instance akan otomatis melakukan failover ke replika. Untuk instance yang dikonfigurasi dengan lebih dari satu replika, instance akan otomatis beralih ke replika dengan jeda replikasi paling sedikit yang responsif.
Jika instance dikonfigurasi hanya dengan satu replika non-baca, semua koneksi aplikasi akan diarahkan ke endpoint utama. Jika instance dikonfigurasi menggunakan replika baca, aplikasi juga dapat memanfaatkan endpoint baca untuk mendistribusikan kueri baca di semua replika.
Saat failover dipicu
Failover terjadi saat Redis utama gagal. Selama failover, endpoint utama dan baca akan otomatis dialihkan ke replika dan utama yang baru. Semua koneksi ke endpoint utama akan dihapus dan koneksi endpoint baca ke replika baca yang dipromosikan juga akan dihapus.
Pengaruh failover terhadap aplikasi Anda
Saat failover utama ke replika, koneksi yang ada ke endpoint utama instance akan dihapus. Instance tidak tersedia selama beberapa detik saat instance utama baru terhubung kembali. Saat terhubung kembali, aplikasi Anda akan otomatis dialihkan ke primary baru menggunakan string koneksi atau alamat IP yang sama. Anda tidak perlu mengupdate aplikasi setelah failover.
Selama failover, jika ada koneksi ke endpoint baca, koneksi ke replika yang dipromosikan ke primer akan dihapus. Koneksi ke replika lainnya akan terus ditayangkan selama failover. Setelah failover selesai dan replika baru tersedia, koneksi akan dialihkan ke replika baru.
Mencoba ulang koneksi instance setelah failover
Saat terjadi failover, semua koneksi dari endpoint utama akan dihapus dan bergantung pada jumlah replika, beberapa koneksi baca akan dihentikan.
Karena kehilangan koneksi ini, aplikasi Anda perlu mencoba lagi untuk memulihkan koneksi. Logika percobaan ulang harus menggunakan backoff eksponensial untuk memastikan Anda tidak membebani instance dengan terlalu banyak permintaan percobaan ulang. Selain menyertakan logika percobaan ulang, Anda harus menguji pengaruh failover terhadap aplikasi dengan menguji dengan failover manual.
Sebagian besar klien Redis memiliki kemampuan percobaan ulang bawaan yang harus Anda manfaatkan saat terjadi koneksi terputus karena failover.
Failover terjadi dalam skenario berikut:
- Menskalakan instance
- Mengupgrade versi Redis instance
- Memulai failover manual
- Pembaruan pemeliharaan
Jika Anda menerapkan logika percobaan ulang di aplikasi untuk menangani pemutusan koneksi karena kegagalan, instance Anda tidak akan mengalami dampak performa yang signifikan. Biasanya, masalah hanya muncul karena tidak adanya logika percobaan ulang.
Cara Anda melihat status untuk ketersediaan tinggi
Anda dapat melihat metrik ketersediaan tinggi untuk instance Redis menggunakan Cloud Monitoring. Untuk mengetahui informasi tentang metrik yang disediakan Cloud Monitoring untuk Memorystore for Redis, lihat Memantau Instance Redis dan Memantau metrik.
Untuk mengetahui informasi selengkapnya, lihat dokumentasi Cloud Monitoring.
Untuk melihat status replikasi native yang disediakan Redis, Anda dapat mengeluarkan perintah Redis INFO ke instance Memorystore for Redis.