MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jaka jest różnica między changeStream a tailable kursorem w MongoDB?

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:

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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 parametru resume_after . Zobacz też Wznowienie strumienia zmian .

  6. 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.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Wywołanie zwrotne NodeJS po wielu funkcjach asynchronicznych w pętli for

  2. Jak wysyłać zapytania z Mongoose pre hook w aplikacji Node.js / Express?

  3. MongoDB Regex, indeks i wydajność

  4. Przechowywanie DateTime w MongoDB wpływa na wydajność

  5. Mongoid te same typy dokumentów osadzonych dla różnych pól