Apakah set replika MongoDB membutuhkan setidaknya 2 atau 3 anggota?

Jawaban:

19

Anda benar-benar dapat menjalankan "set" anggota tunggal jika Anda mau.

3 anggota (atau jumlah ganjil yang lebih tinggi) adalah yang terbaik. Kumpulan replika hanya bisa dibaca jika mayoritas set tidak tersedia, jadi jika Anda kehilangan anggota dalam set dua anggota, anggota yang tersisa hanya akan dibaca.

Anda dapat menjalankan dua anggota penuh plus anggota "hanya pemilih" (disebut arbiter) juga. Ini adalah opsi terkecil yang paling aman untuk satu set replika.

MrKurt
sumber
6
Ingin menggarisbawahi bahwa dua anggota bukanlah sistem yang toleran terhadap kesalahan. @MrKurt benar bahwa jika satu anggota turun (tidak terencana) maka yang lain tidak dapat PRIMARY dan akan mundur ke SECONDARY (hanya baca). Dengan kata lain, jika Anda memerlukan replika dalam produksi, 3 anggota adalah minimum untuk toleransi kesalahan terhadap anggota yang gagal.
Bret Fisher
3

Ini pada dasarnya masalah kata-kata karena persyaratan dalam tutorial bukan pernyataan umum tentang set replika, melainkan berkaitan dengan tutorial itu sendiri. Persyaratan untuk menggunakan set replika secara umum adalah 1 atau lebih, kebanyakan memiliki 2 atau lebih, tetapi tutorial yang Anda tautkan secara khusus untuk menggunakan set 3 anggota:

Tutorial ini menjelaskan cara membuat set replika tiga anggota dari tiga instance MongoDB yang ada

Oleh karena itu, persyaratan untuk tutorial ini adalah set memiliki 3 anggota. Namun demikian, ini agak membingungkan untuk memiliki dua pernyataan, jadi saya mengirimkan permintaan tarik (EDIT: permintaan tarik sekarang telah bergabung) untuk membersihkannya sedikit.

Anda dapat memiliki node mongod tunggal yang dikonfigurasi untuk menjadi bagian dari set replika, tetapi secara tegas itu tidak akan menjadi "set". Bahkan, karena replikasi menggunakan lebih banyak sumber daya daripada mandiri mongod(pada dasarnya karena oplog ), sebenarnya tidak ada gunanya menjalankan satu anggota kecuali itu sebagai tindakan sementara sebelum Anda menambahkan anggota lain ke set atau jika Anda memerlukan oplog untuk alasan lain (seperti cadangan).

Adam C
sumber