sql >> Databáze >  >> NoSQL >> MongoDB

Sada dvou uzlů MongoDB replik bez arbitra

Krátká odpověď:ne.

Dlouhá odpověď:automatické převzetí služeb při selhání v MongoDB funguje tak, že sada replik potřebuje kvalifikovanou většinu k úspěšnému zvolení nové primární volby. Opoždění členové mají ve volbách hlasy. Pokud tedy buď z vašich uzlů selže sada replik zjistí, že nemá tuto většinu a aktuální primární sestoupí, i když selhal. Takže to, co v podstatě děláte, je zdvojnásobení šance, že vaše sada replik selže. Arbiter je velmi levný proces z hlediska využití RAM, CPU a dokonce i místa na disku při spuštění s --smallfiles --no-journal --noprealloc nebo ekvivalentní možnosti nastavené v konfiguračním souboru. Všimněte si, že použití uvedených možností je bezpečné, protože arbitr v podstatě kontroluje pouze srdeční tep uzlů nesoucích data. Rozhodce můžete umístit například na aplikační server.

Odmítnutí odpovědnosti:použití následujícího postupu se důrazně nedoporučuje. Pokračujte na vlastní nebezpečí.

Hlasy zpožděného serveru můžete nastavit na 0. Tímto způsobem nezpožděný uzel vyzve k volbám v případě, že zpožděný člen selže, dojde k závěru, že je to jediný uzel online ze sady replik a že má většinu hlasů (1/1) a bude nadále fungovat podle očekávání. Tento postup vyžaduje určitou pozornost, protože budete mít opět sudý počet hlasů v případě, že později přidáte člena do sady replik a bude nutné sadu replik překonfigurovat. To má také vážné důsledky pro problémy s fragmentací sítě. Znovu:Používejte na vlastní nebezpečí



  1. Aktualizujte mnoho v mongoose

  2. Chyba ECONNREFUSED při připojování k mongodb z node.js

  3. Vývoj databáze Python a MongoDB

  4. $multiply s Number nelze použít