W kontekście skalowania MongoDB:
-
replikacja tworzy dodatkowe kopie danych i umożliwia automatyczne przełączanie awaryjne do innego węzła. Replikacja może pomóc w poziomym skalowaniu odczytów, jeśli możesz odczytać dane, które potencjalnie nie są najnowsze.
-
sharding pozwala na poziome skalowanie zapisów danych poprzez partycjonowanie danych na wielu serwerach za pomocą klucza cząstkowego . Ważne jest, aby wybrać dobry klucz odłamkowy. Na przykład zły wybór klucza fragmentu może prowadzić do tego, że „gorące punkty” danych będą zapisywane tylko w jednym fragmencie.
Środowisko podzielone na fragmenty zwiększa złożoność, ponieważ MongoDB musi teraz zarządzać dystrybucją danych i żądań między fragmentami — do zarządzania tymi aspektami dodawane są dodatkowe procesy konfiguracji i routingu.
Replikacja i sharding są zazwyczaj łączone w celu utworzenia klastra podzielonego na fragmenty gdzie każdy odłamek jest obsługiwany przez zestaw replik.
Z punktu widzenia aplikacji klienckiej masz również pewną kontrolę w odniesieniu do interakcji replikacja/sharding, w szczególności:
- Czytaj preferencje
- Napisz obawy