Fungsi utama set replika adalah menyediakan redundansi data dan ketersediaan tinggi untuk penerapan MongoDB Anda. Artinya, jika simpul utama dalam kumpulan replika turun karena alasan apa pun, simpul sekunder akan segera mengambil alih sebagai primer baru (rata-rata dalam ~10 detik). Lihat Replikasi untuk detail lebih lanjut tentang topik ini.
Driver MongoDB resmi mengetahui peristiwa pemilihan set replika ini, dan akan menyediakan koneksi ulang otomatis dan percobaan ulang operasi ke primer baru. Dari sudut pandang aplikasi, tidak ada yang terjadi di sisi database.
Keuntungan lain menggunakan set replika dengan beberapa sekunder adalah kemungkinan peningkatan/pemeliharaan tanpa henti secara bertahap. Hal ini dapat dilakukan dengan mengambil satu offline sekunder, melakukan pemeliharaan di atasnya, kemudian melakukan pemeliharaan pada sekunder lainnya, dan akhirnya mengundurkan diri primer dan melakukan pemeliharaan di atasnya. Sekali lagi karena driver MongoDB resmi mengetahui peristiwa ini, Anda secara teknis dapat melakukan pemeliharaan pada database langsung dengan dampak yang sangat minimal dan tanpa waktu henti untuk aplikasi.
Ini adalah filosofi yang berbeda vs server database monolitik, di mana hanya ada satu server besar yang sebenarnya. Meskipun ada manfaat tertentu dalam penyebaran monolitik (yang merupakan diskusi yang berbeda lagi :) ), MongoDB dirancang sebagai database terdistribusi yang toleran terhadap kesalahan. Salah satu kelemahan langsung dari satu server adalah bahwa server harus 100% setiap saat, atau aplikasi akan terganggu. Kumpulan replika dirancang agar aplikasi Anda dapat memiliki waktu aktif 100% tanpa memberi tekanan pada setiap server yang harus memiliki waktu aktif 100%.
Sebagai bonus, satu set replika mungkin dapat memberikan skalabilitas baca dengan mengatur driver untuk membaca dari sekunder (penulisan harus selalu pergi ke primer). Perhatikan bahwa harus ada desain yang cermat jika Anda ingin melakukan pembacaan sekunder, karena hal ini berpotensi mengganggu aspek ketersediaan tinggi jika disalahgunakan.
Singkatnya, satu set replika dapat memberikan:
- Ketersediaan tinggi &toleransi kesalahan
- Tidak ada pemeliharaan waktu henti
- Redundansi data untuk menskalakan pembacaan
tanpa memerlukan perangkat keras untuk menjadi 100% dapat diandalkan. Inilah sebabnya mengapa set replika sangat disarankan dalam penerapan prod.
Lihat Arsitektur Penerapan Kumpulan Replika untuk pertimbangan penerapan set replika yang lebih mendetail.