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

Proč se v produkci nedoporučuje spuštění samostatné instance MongoDB jako sady replik?

Hlavní funkcí sady replik je zajistit redundanci dat a vysokou dostupnost pro vaše nasazení MongoDB. To znamená, že pokud by primární uzel v sadě replik z nějakého důvodu selhal, sekundární by okamžitě převzal funkci nového primárního uzlu (v průměru během ~10 sekund). Viz Replikace pro více podrobností o tomto tématu.

Oficiální ovladače MongoDB jsou si vědomi této volební události sady replik a zajistili by automatické opětovné připojení a opakování operace s novým primárním prvkem. Z pohledu aplikace se na straně databáze nic nestalo.

Další výhodou použití sady replik s více sekundárními součástmi je možnost nulového prostoje upgradu/údržby v průběžném režimu. To lze provést tak, že jeden sekundární díl odpojíte, provedete na něm údržbu, poté provedete údržbu na ostatních sekundárních dílech a nakonec primární odpojíte a provedete na něm údržbu. Opět, protože oficiální ovladače MongoDB jsou si těchto událostí vědomi, můžete technicky provádět údržbu živé databáze s velmi minimálním dopadem a bez výpadků aplikace.

To je jiná filozofie než monolitický databázový server, kde je pouze jeden skutečně velký server. Přestože monolitické nasazení má určité přednosti (což je opět jiná diskuze :) ), MongoDB byl navržen jako distribuovaná databáze odolná proti chybám. Jednou okamžitou nevýhodou jednoho serveru je, že server musí být neustále v provozu na 100 %, jinak se aplikace přeruší. Sada replik byla navržena tak, aby vaše aplikace mohla mít 100% dostupnost bez vyvíjení tlaku na jednotlivé servery, které by musely mít 100% dostupnost.

Jako bonus může sada replik být schopen zajistit škálovatelnost čtení nastavením ovladače na čtení ze sekundárních (zápisy musí vždy směřovat na primární). Všimněte si, že byste měli mít pečlivý návrh, pokud chcete provádět sekundární čtení, protože to může v případě zneužití potenciálně narušit aspekt vysoké dostupnosti.

Souhrnně řečeno, sada replik může poskytnout:

  • Vysoká dostupnost a odolnost proti chybám
  • Žádná údržba prostojů
  • Redundance dat pro škálování čtení

aniž by bylo nutné, aby byl hardware 100% spolehlivý. To je důvod, proč se v nasazení prod důrazně doporučuje sada replik.

Viz architektury nasazení sady replik pro podrobnější úvahy o nasazení sady replik.




  1. SQL RPAD()

  2. Jak se dotazovat MongoDB, abyste otestovali, zda položka existuje?

  3. Existuje srovnání řešení NoSQL (které je v určitých situacích lepší?)

  4. Je rámec Mongodb Aggregation rychlejší než map/reduce?