Ändra strömmar (tillgänglig i MongoDB v3.6+) är en funktion som låter dig komma åt dataändringar i realtid utan komplexiteten och risken att tappa oplog . Viktiga fördelar med förändringsströmmar över efter oploggen är:
-
Använd den inbyggda MongoDB rollbaserad åtkomstkontroll . Appar kan bara öppna ändringsströmmar mot samlingar som de har läst tillgång till. Förfinad och specifik auktorisation.
-
Ge ett väldefinierat API som är tillförlitligt. ändringshändelser output som returneras av förändringsströmmar är väl dokumenterade. Alla officiella MongoDB-drivrutiner följ samma specifikationer vid implementering av gränssnitt för förändringsströmmar.
-
Ändringshändelser som returneras som en del av ändringsströmmar är åtminstone förpliktade till majoriteten av replikuppsättningen. Detta innebär att förändringshändelserna som skickas till klienten är hållbara. Applikationer behöver inte hantera dataåterställning i händelse av failover.
-
Ge en total ordning av ändringar över skärvor genom att använda en global logisk klocka. MongoDB garanterar att ändringarnas ordning bevaras och att förändringshändelser säkert kan tolkas i den mottagna ordningen. Till exempel returnerar en ändringsströmmarkör som öppnas mot ett 3-sharded kluster förändringshändelser som respekterar den totala ordningen för dessa ändringar över alla tre shards.
-
På grund av ordningsegenskapen är förändringsströmmar också i sig återupptagbara.
_id
av ändra händelseutdata är ett CV-token. MongoDB officiella drivrutiner cachelagrar automatiskt detta CV-token, och i fallet med övergående nätverksfel kommer drivrutinen att försöka igen en gång. Dessutom kan applikationer även återupptas manuellt genom att använda parameternresume_after
. Se även Återuppta en förändringsström . -
Använd MongoDB-aggregationspipeline . Applikationer kan ändra utdata för förändringshändelser. För närvarande finns det fem pipeline-steg tillgängliga för att ändra händelseutdata. Ändringshändelseutgångar kan till exempel filtreras bort (serversidan) innan de skickas ut med $matchsteg . Se Ändra ändra strömutgång för mer information.
Om din MongoDB-distribution är version 3.6+, skulle jag rekommendera att använda MongoDB Change Streams över att avsluta oploggen.
Du kan också hitta Rekommendationer för produktion av ändra strömmar en användbar resurs.