Główną funkcją zestawu replik jest zapewnienie nadmiarowości danych i wysokiej dostępności we wdrożeniu MongoDB. Oznacza to, że jeśli węzeł podstawowy w zestawie replik przestanie działać z jakiegokolwiek powodu, drugorzędny natychmiast przejmie rolę nowego głównego (średnio w ciągu ~10 sekund). Zobacz Replikacja aby uzyskać więcej informacji na ten temat.
Oficjalne sterowniki MongoDB są świadome tego zdarzenia wyboru zestawu replik i zapewnią automatyczne ponowne nawiązywanie połączenia i ponawianie operacji z nową podstawową. Z punktu widzenia aplikacji nic się nie wydarzyło po stronie bazy danych.
Kolejną zaletą korzystania z zestawu replik z wieloma częściami pomocniczymi jest możliwość bezstopniowej modernizacji/konserwacji w sposób ciągły. Można to zrobić, przełączając jedno wtórne w tryb offline, przeprowadzając na nim konserwację, a następnie konserwując inne wtórne, a na koniec wyłączając główny i wykonując na nim konserwację. Ponownie, ponieważ oficjalni kierowcy MongoDB są świadomi tych zdarzeń, możesz technicznie wykonywać konserwację działającej bazy danych z bardzo minimalnym wpływem i bez przestojów w aplikacji.
To inna filozofia niż monolityczny serwer bazodanowy, w którym jest tylko jeden naprawdę duży serwer. Chociaż istnieją pewne zalety we wdrożeniu monolitycznym (co jest znowu inną dyskusją :) ), MongoDB został zaprojektowany z myślą o rozproszonej bazie danych odpornej na błędy. Jedną z bezpośrednich wad pojedynczego serwera jest to, że serwer musi być cały czas w 100%, w przeciwnym razie aplikacja zostanie zakłócona. Zestaw replik został zaprojektowany tak, aby Twoja aplikacja mogła mieć 100% dostępności bez wywierania presji na poszczególne serwery, które muszą mieć 100% dostępności.
Jako bonus zestaw replik może być w stanie zapewnić skalowalność odczytu, ustawiając sterownik do odczytu z drugorzędnych (zapisy muszą zawsze iść do podstawowego). Należy pamiętać, że należy starannie zaprojektować, jeśli chcesz wykonać odczyty wtórne, ponieważ może to potencjalnie zakłócić aspekt wysokiej dostępności, jeśli zostanie nadużyty.
Podsumowując, zestaw replik może zapewnić:
- Wysoka dostępność i odporność na błędy
- Brak konserwacji przestojów
- Nadmiarowość danych do skalowania odczytów
bez wymagania, aby sprzęt był w 100% niezawodny. Właśnie dlatego zestaw replik jest zdecydowanie zalecany we wdrożeniu produktu.
Zobacz Architektury wdrażania zestawów replik aby uzyskać bardziej szczegółowe informacje na temat wdrażania zestawu replik.