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

Jaký je rozdíl mezi changeStreamem a tabulkovým kurzorem v MongoDB

Změnit streamy (dostupná v MongoDB v3.6+) je funkce, která vám umožňuje přistupovat ke změnám dat v reálném čase bez složitosti a rizika omezení oplog . Klíčové výhody proudů změn přes sledující oplog jsou:

  1. Využijte vestavěné Řízení přístupu založeného na rolích MongoDB . Aplikace mohou otevírat proudy změn pouze u sbírek, které přečetly přístup k. Rafinované a specifické povolení.

  2. Poskytněte dobře definované API, které je spolehlivé. události změn výstupy, které jsou vráceny proudy změn, jsou dobře zdokumentovány. Také všechny oficiální ovladače MongoDB postupujte podle stejných specifikací při implementaci rozhraní toků změn.

  3. Události změn, které jsou vráceny jako součást toků změn, jsou potvrzeny alespoň pro většinu sady replik. To znamená, že změny odeslané klientovi jsou trvalé. Aplikace nemusí zpracovávat vrácení dat v případě převzetí služeb při selhání.

  4. Poskytněte celkové uspořádání změn napříč fragmenty pomocí globálních logických hodin. MongoDB zaručuje, že pořadí změn je zachováno a události změn lze bezpečně interpretovat v přijatém pořadí. Například kurzor toku změn otevřený proti 3-dílnému fragmentu clusteru vrátí události změn respektující celkové pořadí těchto změn ve všech třech fragmentech.

  5. Vzhledem k charakteristice řazení jsou toky změn také přirozeně obnovitelné. _id z výstup události změny je token životopisu. Oficiální ovladače MongoDB automaticky ukládají tento token obnovení do mezipaměti a v případě přechodné chyby sítě to ovladač jednou zopakuje. Kromě toho lze aplikace také obnovit ručně pomocí parametru resume_after . Viz také Obnovení streamu změn .

  6. Využijte potrub agregace MongoDB . Aplikace mohou upravovat výstup událostí změn. V současné době je k dispozici pět fází potrubí pro úpravu výstupu události. Například výstupy změnových událostí lze před odesláním odfiltrovat (na straně serveru) pomocí fáze $match . Viz Úprava výstupu streamu změn Pro více informací.

Pokud je vaše nasazení MongoDB verze 3.6+, doporučil bych využít MongoDB Change Streams přes tailing oplog.

Můžete také najít Doporučení pro produkci změn streamů užitečný zdroj.



  1. Může se kafka připojit - zdroj mongo běží jako cluster (max.tasks> 1)

  2. MongoDB :Proč bychom měli zavřít kurzor po jeho použití?

  3. uložit objekt s obousměrným vztahem v mongodb pomocí oficiálního ovladače c#

  4. Node.js slibuje s mongoskin