MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Quelle est la différence entre un changeStream et un curseur tailable dans MongoDB

Modifier les flux (disponible dans MongoDB v3.6+) est une fonctionnalité qui vous permet d'accéder aux modifications de données en temps réel sans la complexité et le risque de suivre le oplog . Principaux avantages des flux de changement over suivi de l'oplog sont :

  1. Utilisez le Contrôle d'accès basé sur les rôles MongoDB . Les applications ne peuvent ouvrir des flux de modifications que sur des collections qu'elles ont lues accès à. Autorisation affinée et spécifique.

  2. Fournir une API bien définie et fiable. Les modifier les événements les sorties renvoyées par les flux de modifications sont bien documentées. De plus, tous les pilotes MongoDB officiels suivez les mêmes spécifications lors de la mise en œuvre de l'interface de flux de modifications.

  3. Les événements de modification renvoyés dans le cadre des flux de modifications sont au moins validés pour la majorité du jeu de réplicas. Cela signifie que les événements de modification envoyés au client sont durables. Les applications n'ont pas besoin de gérer la restauration des données en cas de basculement.

  4. Fournissez un ordre total des modifications sur les partitions en utilisant une horloge logique globale. MongoDB garantit que l'ordre des modifications est préservé et que les événements de modification peuvent être interprétés en toute sécurité dans l'ordre reçu. Par exemple, un curseur de flux de modifications ouvert sur un cluster à 3 partitions renvoie des événements de modification en respectant l'ordre total de ces modifications sur les trois partitions.

  5. En raison de la caractéristique d'ordre, les flux de modifications peuvent également être repris par nature. Le _id de modifier la sortie de l'événement est un jeton de reprise. Les pilotes officiels MongoDB mettent automatiquement en cache ce jeton de reprise et, en cas d'erreur transitoire du réseau, le pilote réessaie une fois. De plus, les applications peuvent également reprendre manuellement en utilisant le paramètre resume_after . Voir aussi Reprendre un flux de modification .

  6. Utiliser pipeline d'agrégation MongoDB . Les applications peuvent modifier la sortie des événements de changement. Actuellement, cinq étapes de pipeline sont disponibles pour modifier la sortie de l'événement. Par exemple, les sorties d'événements de modification peuvent être filtrées (côté serveur) avant d'être envoyées à l'aide de Étape $match . Voir Modifier la sortie du flux de modification pour plus d'informations.

Si votre déploiement MongoDB est la version 3.6+, je vous recommande d'utiliser MongoDB Change Streams plutôt que de suivre l'oplog.

Vous pouvez également trouver Recommandations de production de flux de modification une ressource utile.