Zmień strumienie (dostępna w MongoDB v3.6+) to funkcja, która umożliwia dostęp do zmian danych w czasie rzeczywistym bez złożoności i ryzyka związanego z oplog . Najważniejsze zalety strumieni zmian ponad śledząc oploga to:
-
Skorzystaj z wbudowanej Kontrola dostępu MongoDB oparta na rolach . Aplikacje mogą otwierać strumienie zmian tylko w kolekcjach, które przeczytały dostęp do. Wyrafinowane i szczególne zezwolenie.
-
Zapewnij dobrze zdefiniowany interfejs API, który jest niezawodny. zmiany zdarzeń dane wyjściowe zwracane przez strumienie zmian są dobrze udokumentowane. Ponadto wszystkie oficjalne sterowniki MongoDB postępuj zgodnie z tymi samymi specyfikacjami podczas wdrażania interfejsu strumieni zmian.
-
Zdarzenia zmiany, które są zwracane jako część strumieni zmian, są co najmniej zatwierdzone do większości zestawu replik. Oznacza to, że zdarzenia zmiany wysyłane do klienta są trwałe. Aplikacje nie muszą obsługiwać przywracania danych w przypadku przełączenia awaryjnego.
-
Zapewnij całkowitą kolejność zmian we fragmentach, korzystając z globalnego zegara logicznego. MongoDB gwarantuje zachowanie kolejności zmian, a zdarzenia zmian mogą być bezpiecznie interpretowane w otrzymanej kolejności. Na przykład kursor strumienia zmian otwarty względem klastra podzielonego na 3 fragmenty zwraca zdarzenia zmiany z uwzględnieniem całkowitej kolejności tych zmian we wszystkich trzech fragmentach.
-
Ze względu na charakterystykę porządkowania strumienie zmian są również z natury możliwe do wznowienia.
_id
zmiana danych wyjściowych zdarzenia to token wznowienia. Oficjalne sterowniki MongoDB automatycznie buforują ten token wznowienia, aw przypadku przejściowego błędu sieci sterownik spróbuje raz jeszcze. Ponadto aplikacje mogą również ręcznie wznawiać działanie, korzystając z parametruresume_after
. Zobacz też Wznowienie strumienia zmian . -
Wykorzystaj potok agregacji MongoDB . Aplikacje mogą modyfikować dane wyjściowe zdarzeń zmiany. Obecnie dostępnych jest pięć etapów potoku umożliwiających modyfikowanie danych wyjściowych zdarzenia. Na przykład dane wyjściowe zdarzeń zmiany można odfiltrować (po stronie serwera) przed wysłaniem za pomocą etap $match . Zobacz Modyfikowanie zmiany wyjścia strumienia po więcej informacji.
Jeśli twoje wdrożenie MongoDB jest w wersji 3.6+, zalecam wykorzystanie strumieni zmian MongoDB zamiast śledzenia oploga.
Możesz również znaleźć Zmień zalecenia dotyczące produkcji strumieni przydatne źródło.